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
- ImageList.cs
- ApplicationContext.cs
- RectValueSerializer.cs
- InheritedPropertyChangedEventArgs.cs
- Bold.cs
- EdmType.cs
- MD5CryptoServiceProvider.cs
- DynamicDataExtensions.cs
- BaseCodePageEncoding.cs
- ParameterBuilder.cs
- EntitySqlException.cs
- WebServiceEndpoint.cs
- SerializationSectionGroup.cs
- MessagePropertyDescriptionCollection.cs
- ImageIndexConverter.cs
- KnownBoxes.cs
- BufferModesCollection.cs
- XsdDateTime.cs
- AnonymousIdentificationSection.cs
- WsdlHelpGeneratorElement.cs
- SpinWait.cs
- HyperlinkAutomationPeer.cs
- XsltFunctions.cs
- CommonRemoteMemoryBlock.cs
- OletxCommittableTransaction.cs
- SortedDictionary.cs
- GenericTypeParameterBuilder.cs
- LinearGradientBrush.cs
- WrappedKeySecurityTokenParameters.cs
- Stream.cs
- SqlClientWrapperSmiStream.cs
- HtmlInputRadioButton.cs
- Variant.cs
- RoleManagerEventArgs.cs
- OracleDateTime.cs
- BasicExpandProvider.cs
- PostBackTrigger.cs
- TriggerActionCollection.cs
- SctClaimSerializer.cs
- InsufficientMemoryException.cs
- ACE.cs
- RayMeshGeometry3DHitTestResult.cs
- SamlSubjectStatement.cs
- MemberAssignmentAnalysis.cs
- ObjectSpanRewriter.cs
- MailWebEventProvider.cs
- FormCollection.cs
- Rectangle.cs
- ToolStripItemTextRenderEventArgs.cs
- Context.cs
- SingleStorage.cs
- SoapRpcMethodAttribute.cs
- DrawingAttributes.cs
- EntryIndex.cs
- TabControlEvent.cs
- SettingsPropertyNotFoundException.cs
- WithParamAction.cs
- UInt16Converter.cs
- MarginCollapsingState.cs
- UDPClient.cs
- IDQuery.cs
- FormatConvertedBitmap.cs
- ConnectionManagementElementCollection.cs
- WindowsGraphicsWrapper.cs
- SqlAggregateChecker.cs
- Update.cs
- BinHexEncoder.cs
- IDReferencePropertyAttribute.cs
- SByte.cs
- NetworkStream.cs
- DescendantBaseQuery.cs
- InputLangChangeEvent.cs
- ChtmlPhoneCallAdapter.cs
- LinkTarget.cs
- MatrixAnimationUsingPath.cs
- SqlFunctionAttribute.cs
- EmptyControlCollection.cs
- XmlAtomicValue.cs
- SelectionProcessor.cs
- SchemaCollectionPreprocessor.cs
- XmlEntity.cs
- Timer.cs
- TakeQueryOptionExpression.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- TabletDevice.cs
- DrawingContext.cs
- DataGridViewSelectedRowCollection.cs
- RSAPKCS1SignatureDeformatter.cs
- FileSystemInfo.cs
- Fonts.cs
- StylusLogic.cs
- TextDecorationUnitValidation.cs
- MessageProperties.cs
- XmlWrappingReader.cs
- VirtualizingStackPanel.cs
- BindUriHelper.cs
- GridViewColumnHeader.cs
- indexingfiltermarshaler.cs
- HMACMD5.cs
- SiteMapDataSourceView.cs