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
- CanonicalFormWriter.cs
- PackagingUtilities.cs
- StringAnimationUsingKeyFrames.cs
- SqlFormatter.cs
- NavigateEvent.cs
- TextFormatterImp.cs
- CollectionViewGroupInternal.cs
- HtmlUtf8RawTextWriter.cs
- SystemIPInterfaceStatistics.cs
- Set.cs
- HttpListenerException.cs
- Timer.cs
- BitmapEffect.cs
- ViewPort3D.cs
- XmlSchema.cs
- AsymmetricSignatureDeformatter.cs
- AssociatedControlConverter.cs
- ValidationError.cs
- TextRangeEditTables.cs
- EnumerableRowCollection.cs
- RecognizedPhrase.cs
- TypeReference.cs
- updateconfighost.cs
- DataGridViewEditingControlShowingEventArgs.cs
- AuthenticationManager.cs
- SiteMapDataSourceView.cs
- XPathDocumentBuilder.cs
- CodeCompiler.cs
- WebPartZoneCollection.cs
- TreeChangeInfo.cs
- ObjectReaderCompiler.cs
- ToolStripDesignerAvailabilityAttribute.cs
- DataObject.cs
- GroupBox.cs
- Msmq4SubqueuePoisonHandler.cs
- FullTextState.cs
- ValidationResults.cs
- DateTimeFormatInfo.cs
- XmlSchemaSimpleTypeList.cs
- TextTreeInsertElementUndoUnit.cs
- DataSourceDescriptorCollection.cs
- PropertyChangedEventArgs.cs
- XmlNamespaceDeclarationsAttribute.cs
- DropDownList.cs
- HatchBrush.cs
- Helpers.cs
- InheritedPropertyChangedEventArgs.cs
- SqlUdtInfo.cs
- MessageHeaderDescription.cs
- CodeTryCatchFinallyStatement.cs
- WindowsFormsHostPropertyMap.cs
- ExpressionNode.cs
- Deflater.cs
- Normalization.cs
- Missing.cs
- MimeParameter.cs
- ProgressBarAutomationPeer.cs
- FileLogRecordEnumerator.cs
- Trigger.cs
- VScrollBar.cs
- TraceHandler.cs
- DrawingAttributeSerializer.cs
- COAUTHINFO.cs
- RealizationContext.cs
- TextElementCollection.cs
- DataObjectSettingDataEventArgs.cs
- RegularExpressionValidator.cs
- SortQuery.cs
- GlyphRunDrawing.cs
- X509ChainElement.cs
- Registration.cs
- TableParagraph.cs
- relpropertyhelper.cs
- HttpCacheVary.cs
- XPathScanner.cs
- PrimitiveCodeDomSerializer.cs
- UserControlParser.cs
- SpecialNameAttribute.cs
- IteratorFilter.cs
- AsyncPostBackTrigger.cs
- UpdateTranslator.cs
- OleDbStruct.cs
- ReadOnlyDataSource.cs
- TextTreeUndo.cs
- login.cs
- GeneralTransform3DCollection.cs
- ProfilePropertyNameValidator.cs
- ProfilePropertyNameValidator.cs
- SqlCommand.cs
- UidManager.cs
- DataGridTextBox.cs
- FreezableCollection.cs
- HttpCacheVary.cs
- Pen.cs
- HashMembershipCondition.cs
- LinqTreeNodeEvaluator.cs
- DataPager.cs
- StringArrayConverter.cs
- TransformerInfoCollection.cs
- Animatable.cs