Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Automation / Peers / TreeViewAutomationPeer.cs / 1 / TreeViewAutomationPeer.cs
using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Security; using System.Text; using System.Windows; using System.Windows.Automation.Provider; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Interop; using System.Windows.Media; using MS.Internal; using MS.Win32; namespace System.Windows.Automation.Peers { /// public class TreeViewAutomationPeer : FrameworkElementAutomationPeer, ISelectionProvider { /// public TreeViewAutomationPeer(TreeView owner): base(owner) {} /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Tree; } /// override protected string GetClassNameCore() { return "TreeView"; } /// override public object GetPattern(PatternInterface patternInterface) { if (patternInterface == PatternInterface.Selection) { return this; } else if(patternInterface == PatternInterface.Scroll) { ItemsControl owner = (ItemsControl)Owner; if(owner.ScrollHost != null) { AutomationPeer scrollPeer = UIElementAutomationPeer.CreatePeerForElement(owner.ScrollHost); if(scrollPeer != null && scrollPeer is IScrollProvider) { scrollPeer.EventsSource = this; return (IScrollProvider)scrollPeer; } } } return null; } /// protected override ListGetChildrenCore() { ItemsControl owner = (ItemsControl)Owner; ItemCollection items = owner.Items; if (items.Count > 0) { List children = new List (items.Count); for (int i = 0; i < items.Count; i++) { TreeViewItem treeViewItem = owner.ItemContainerGenerator.ContainerFromIndex(i) as TreeViewItem; if (treeViewItem != null) { AutomationPeer peer = UIElementAutomationPeer.FromElement(treeViewItem); if (peer == null) peer = UIElementAutomationPeer.CreatePeerForElement(treeViewItem); children.Add(peer); } } return children; } return null; } //-------------------------------------------------------------------- // // ISelectionProvider // //------------------------------------------------------------------- #region ISelectionProvider /// /// Returns the current selection. /// ///The current selection. IRawElementProviderSimple[] ISelectionProvider.GetSelection() { IRawElementProviderSimple[] selection = null; TreeViewItem selectedContainer = ((TreeView)Owner).SelectedContainer; if (selectedContainer != null) { AutomationPeer peer = UIElementAutomationPeer.FromElement(selectedContainer); if (peer != null) { selection = new IRawElementProviderSimple[] { ProviderFromPeer(peer) }; } } if (selection == null) { selection = new IRawElementProviderSimple[0]; } return selection; } bool ISelectionProvider.CanSelectMultiple { get { return false; } } bool ISelectionProvider.IsSelectionRequired { get { return false; } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Security; using System.Text; using System.Windows; using System.Windows.Automation.Provider; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Interop; using System.Windows.Media; using MS.Internal; using MS.Win32; namespace System.Windows.Automation.Peers { /// public class TreeViewAutomationPeer : FrameworkElementAutomationPeer, ISelectionProvider { /// public TreeViewAutomationPeer(TreeView owner): base(owner) {} /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Tree; } /// override protected string GetClassNameCore() { return "TreeView"; } /// override public object GetPattern(PatternInterface patternInterface) { if (patternInterface == PatternInterface.Selection) { return this; } else if(patternInterface == PatternInterface.Scroll) { ItemsControl owner = (ItemsControl)Owner; if(owner.ScrollHost != null) { AutomationPeer scrollPeer = UIElementAutomationPeer.CreatePeerForElement(owner.ScrollHost); if(scrollPeer != null && scrollPeer is IScrollProvider) { scrollPeer.EventsSource = this; return (IScrollProvider)scrollPeer; } } } return null; } /// protected override ListGetChildrenCore() { ItemsControl owner = (ItemsControl)Owner; ItemCollection items = owner.Items; if (items.Count > 0) { List children = new List (items.Count); for (int i = 0; i < items.Count; i++) { TreeViewItem treeViewItem = owner.ItemContainerGenerator.ContainerFromIndex(i) as TreeViewItem; if (treeViewItem != null) { AutomationPeer peer = UIElementAutomationPeer.FromElement(treeViewItem); if (peer == null) peer = UIElementAutomationPeer.CreatePeerForElement(treeViewItem); children.Add(peer); } } return children; } return null; } //-------------------------------------------------------------------- // // ISelectionProvider // //------------------------------------------------------------------- #region ISelectionProvider /// /// Returns the current selection. /// ///The current selection. IRawElementProviderSimple[] ISelectionProvider.GetSelection() { IRawElementProviderSimple[] selection = null; TreeViewItem selectedContainer = ((TreeView)Owner).SelectedContainer; if (selectedContainer != null) { AutomationPeer peer = UIElementAutomationPeer.FromElement(selectedContainer); if (peer != null) { selection = new IRawElementProviderSimple[] { ProviderFromPeer(peer) }; } } if (selection == null) { selection = new IRawElementProviderSimple[0]; } return selection; } bool ISelectionProvider.CanSelectMultiple { get { return false; } } bool ISelectionProvider.IsSelectionRequired { get { return false; } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PngBitmapDecoder.cs
- DataGridViewDataErrorEventArgs.cs
- LifetimeServices.cs
- UserPersonalizationStateInfo.cs
- SettingsSavedEventArgs.cs
- TypeBinaryExpression.cs
- DefaultExpression.cs
- DataServiceRequestOfT.cs
- MsmqIntegrationInputMessage.cs
- ProjectionCamera.cs
- PngBitmapDecoder.cs
- WebPartCloseVerb.cs
- InertiaTranslationBehavior.cs
- List.cs
- BoundPropertyEntry.cs
- CharStorage.cs
- SchemaTypeEmitter.cs
- SqlSelectStatement.cs
- PageTextBox.cs
- Version.cs
- CodeTryCatchFinallyStatement.cs
- XamlParser.cs
- XmlUrlResolver.cs
- SchemeSettingElement.cs
- PeerContact.cs
- EndEvent.cs
- ModuleBuilderData.cs
- FontFamilyConverter.cs
- WebHeaderCollection.cs
- DropDownList.cs
- XmlSchemaAny.cs
- StylusPlugInCollection.cs
- FieldAccessException.cs
- RawAppCommandInputReport.cs
- WebBrowserHelper.cs
- KoreanLunisolarCalendar.cs
- PolygonHotSpot.cs
- SyntaxCheck.cs
- Script.cs
- IconBitmapDecoder.cs
- SqlDataReaderSmi.cs
- PreservationFileWriter.cs
- EventHandlerList.cs
- MeasureItemEvent.cs
- SqlReferenceCollection.cs
- TypeNameConverter.cs
- SettingsPropertyWrongTypeException.cs
- WithParamAction.cs
- DataGridSortCommandEventArgs.cs
- DefaultPrintController.cs
- milexports.cs
- PersonalizationStateQuery.cs
- TextMetrics.cs
- EdmSchemaError.cs
- DoubleAnimationBase.cs
- XpsLiterals.cs
- MenuItemStyle.cs
- FontDriver.cs
- QilGeneratorEnv.cs
- CodeAttributeArgumentCollection.cs
- XPathMessageFilterElement.cs
- ObjectDataSourceMethodEditor.cs
- ErrorWrapper.cs
- PlainXmlWriter.cs
- Hashtable.cs
- CodeTypeParameterCollection.cs
- SegmentTree.cs
- MetadataSerializer.cs
- ObjectMemberMapping.cs
- AlternateViewCollection.cs
- DataBoundLiteralControl.cs
- AsyncResult.cs
- ClientBuildManager.cs
- ProcessManager.cs
- GacUtil.cs
- IsolatedStoragePermission.cs
- UnsafeNetInfoNativeMethods.cs
- WindowHideOrCloseTracker.cs
- FilteredAttributeCollection.cs
- ExecutionContext.cs
- CngUIPolicy.cs
- ADMembershipProvider.cs
- Vector3D.cs
- QilReplaceVisitor.cs
- DrawingContextDrawingContextWalker.cs
- MobileErrorInfo.cs
- AudienceUriMode.cs
- TrackingParticipant.cs
- HitTestResult.cs
- CodeDomLoader.cs
- KeyedHashAlgorithm.cs
- TextBoxAutomationPeer.cs
- ArithmeticException.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- SortableBindingList.cs
- PathFigureCollectionValueSerializer.cs
- Parallel.cs
- DataContractAttribute.cs
- SoapReflectionImporter.cs
- ReferencedType.cs