Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- TypeBuilderInstantiation.cs
- EditorPartDesigner.cs
- ParameterDataSourceExpression.cs
- ByeMessageCD1.cs
- DataMemberAttribute.cs
- FormatException.cs
- DocumentDesigner.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- ScriptingRoleServiceSection.cs
- ListView.cs
- ImageConverter.cs
- ToolTip.cs
- Positioning.cs
- XmlMembersMapping.cs
- AnnotationDocumentPaginator.cs
- SendingRequestEventArgs.cs
- SafeSecurityHandles.cs
- MetafileHeader.cs
- TableCellCollection.cs
- WebPartTransformer.cs
- FormViewAutoFormat.cs
- SizeAnimationClockResource.cs
- MimeWriter.cs
- IISMapPath.cs
- PropertyStore.cs
- ExceptionCollection.cs
- ModuleBuilderData.cs
- TableAdapterManagerGenerator.cs
- WebConfigurationFileMap.cs
- SqlDuplicator.cs
- NamespaceCollection.cs
- XmlCodeExporter.cs
- HtmlInputText.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- SafeBitVector32.cs
- VectorKeyFrameCollection.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- XmlUrlResolver.cs
- ISFTagAndGuidCache.cs
- SHA256Managed.cs
- RelationshipFixer.cs
- TcpTransportSecurityElement.cs
- ProfileSection.cs
- Qualifier.cs
- GridItem.cs
- SystemSounds.cs
- GenericIdentity.cs
- __Filters.cs
- PenCursorManager.cs
- DataKeyCollection.cs
- BitmapMetadataEnumerator.cs
- UxThemeWrapper.cs
- RestClientProxyHandler.cs
- DropAnimation.xaml.cs
- WorkflowRuntimeEndpoint.cs
- InitializingNewItemEventArgs.cs
- XmlDataSource.cs
- ListBindableAttribute.cs
- Select.cs
- NullableIntMinMaxAggregationOperator.cs
- PersonalizableAttribute.cs
- KerberosTokenFactoryCredential.cs
- EnumType.cs
- SqlSelectClauseBuilder.cs
- HttpFileCollection.cs
- BrowserCapabilitiesFactory.cs
- ManagementException.cs
- EventWaitHandle.cs
- InkCanvasInnerCanvas.cs
- TryExpression.cs
- KnownBoxes.cs
- StringComparer.cs
- AnimationTimeline.cs
- ImportedPolicyConversionContext.cs
- EnumerableCollectionView.cs
- WindowsIdentity.cs
- GridViewItemAutomationPeer.cs
- StrokeSerializer.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- SecondaryIndexList.cs
- UseManagedPresentationBindingElementImporter.cs
- ObjectSet.cs
- WebException.cs
- FtpCachePolicyElement.cs
- WebPartMenu.cs
- ContextDataSource.cs
- EnvironmentPermission.cs
- ToolStripScrollButton.cs
- CallbackTimeoutsElement.cs
- Pen.cs
- PersistenceTypeAttribute.cs
- __TransparentProxy.cs
- LinqDataSourceHelper.cs
- DataSet.cs
- AbandonedMutexException.cs
- ExpressionReplacer.cs
- AuthenticatingEventArgs.cs
- SqlAliaser.cs
- XpsResourceDictionary.cs
- Quaternion.cs