Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- MatrixCamera.cs
- TraceHwndHost.cs
- AutomationElement.cs
- SecurityTokenRequirement.cs
- TextEndOfSegment.cs
- SigningProgress.cs
- __Filters.cs
- GlyphRunDrawing.cs
- TextLineResult.cs
- AsyncResult.cs
- BoundingRectTracker.cs
- SectionXmlInfo.cs
- BinaryFormatterWriter.cs
- SafeRegistryHandle.cs
- FlowDocumentReader.cs
- SlipBehavior.cs
- UInt16Storage.cs
- ProtocolReflector.cs
- StringBuilder.cs
- SecurityContext.cs
- SQLDouble.cs
- Certificate.cs
- HtmlInputReset.cs
- xmlformatgeneratorstatics.cs
- Package.cs
- WindowsRebar.cs
- QueryOperationResponseOfT.cs
- ObjectItemLoadingSessionData.cs
- CroppedBitmap.cs
- MetadataCache.cs
- ConfigurationLocationCollection.cs
- SignatureDescription.cs
- BuilderPropertyEntry.cs
- FormatterConverter.cs
- ClientRuntimeConfig.cs
- UIInitializationException.cs
- RectAnimation.cs
- LateBoundBitmapDecoder.cs
- TableRowCollection.cs
- TabItem.cs
- ReadOnlyObservableCollection.cs
- PieceNameHelper.cs
- DotExpr.cs
- CapabilitiesUse.cs
- ProtectedConfigurationSection.cs
- Calendar.cs
- ExpressionBuilder.cs
- LabelAutomationPeer.cs
- Form.cs
- WSTransactionSection.cs
- ColorMatrix.cs
- Base64Encoding.cs
- SourceElementsCollection.cs
- AutoResizedEvent.cs
- SeparatorAutomationPeer.cs
- OciEnlistContext.cs
- GroupItemAutomationPeer.cs
- SoundPlayerAction.cs
- SchemaManager.cs
- TextShapeableCharacters.cs
- OrderedDictionaryStateHelper.cs
- DataGridViewRowConverter.cs
- LiteralControl.cs
- SByteStorage.cs
- MissingMemberException.cs
- SecurityPolicySection.cs
- WorkflowService.cs
- NextPreviousPagerField.cs
- XmlConverter.cs
- EntityKey.cs
- EmptyEnumerator.cs
- TextSearch.cs
- XmlToDatasetMap.cs
- CompilationUnit.cs
- BaseCollection.cs
- URLMembershipCondition.cs
- MultiView.cs
- HashCoreRequest.cs
- FileInfo.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- AssemblyAttributes.cs
- UdpReplyToBehavior.cs
- DrawListViewColumnHeaderEventArgs.cs
- ApplicationBuildProvider.cs
- TabletDevice.cs
- CommandLineParser.cs
- CategoryValueConverter.cs
- X509ChainElement.cs
- ContextDataSource.cs
- VariantWrapper.cs
- TextBlock.cs
- PointUtil.cs
- WebHostUnsafeNativeMethods.cs
- UserControlBuildProvider.cs
- JapaneseLunisolarCalendar.cs
- TextTreeDeleteContentUndoUnit.cs
- FormsAuthenticationCredentials.cs
- GenerateDerivedKeyRequest.cs
- Pair.cs
- QueryStringHandler.cs