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
- DockAndAnchorLayout.cs
- COM2ICategorizePropertiesHandler.cs
- ControlValuePropertyAttribute.cs
- TextRunProperties.cs
- CodeExpressionStatement.cs
- View.cs
- HtmlShimManager.cs
- MergePropertyDescriptor.cs
- EventLogPermissionAttribute.cs
- CompositeCollection.cs
- UserMapPath.cs
- EdmProperty.cs
- ChtmlLinkAdapter.cs
- ItemsControl.cs
- HttpCachePolicy.cs
- IEnumerable.cs
- DeploymentExceptionMapper.cs
- Semaphore.cs
- SoapTypeAttribute.cs
- ConstNode.cs
- PagedDataSource.cs
- TableColumnCollection.cs
- Timeline.cs
- ObjectViewQueryResultData.cs
- DictionaryContent.cs
- ThreadExceptionDialog.cs
- DesigntimeLicenseContextSerializer.cs
- UnsafeNativeMethodsPenimc.cs
- MonthCalendar.cs
- DesignerHost.cs
- FormatException.cs
- FixedDocumentSequencePaginator.cs
- QilIterator.cs
- SpellCheck.cs
- SuppressIldasmAttribute.cs
- CacheDependency.cs
- WebServicesSection.cs
- typedescriptorpermissionattribute.cs
- TableItemPatternIdentifiers.cs
- RoleManagerModule.cs
- Tokenizer.cs
- DbDataReader.cs
- ItemsControl.cs
- MaskedTextBox.cs
- CatalogPart.cs
- TraceSource.cs
- FlagsAttribute.cs
- DataListItem.cs
- CacheDependency.cs
- GeneralTransform3DTo2D.cs
- TreeWalker.cs
- DataConnectionHelper.cs
- ToolZone.cs
- PersistenceException.cs
- PrimaryKeyTypeConverter.cs
- formatter.cs
- ByteStack.cs
- SafeRightsManagementEnvironmentHandle.cs
- TextTreeText.cs
- FontDifferentiator.cs
- CommandBindingCollection.cs
- UpdateCommand.cs
- WebConfigurationHost.cs
- ExpandSegmentCollection.cs
- InputManager.cs
- TrackingStringDictionary.cs
- SqlClientPermission.cs
- HtmlElementEventArgs.cs
- SafeTimerHandle.cs
- NamespaceExpr.cs
- SoapRpcServiceAttribute.cs
- Section.cs
- IPPacketInformation.cs
- Pkcs7Signer.cs
- TcpHostedTransportConfiguration.cs
- SynchronizedInputPattern.cs
- BlobPersonalizationState.cs
- ExtensionDataObject.cs
- RuntimeArgumentHandle.cs
- PathData.cs
- ClaimComparer.cs
- EncryptedData.cs
- WindowsScrollBarBits.cs
- SelectedGridItemChangedEvent.cs
- CorrelationExtension.cs
- X509ServiceCertificateAuthentication.cs
- CacheEntry.cs
- SQLByteStorage.cs
- ScrollProviderWrapper.cs
- WebPartPersonalization.cs
- IsolatedStorage.cs
- FileRegion.cs
- validation.cs
- MenuEventArgs.cs
- IBuiltInEvidence.cs
- Italic.cs
- ExcCanonicalXml.cs
- LogEntrySerializationException.cs
- XMLDiffLoader.cs
- FrameworkElement.cs