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
- HtmlInputSubmit.cs
- AsyncContentLoadedEventArgs.cs
- HttpRuntime.cs
- SQLByteStorage.cs
- SqlServices.cs
- MailWriter.cs
- DataServiceEntityAttribute.cs
- FrameworkElementFactory.cs
- ByteStreamGeometryContext.cs
- ClientTarget.cs
- GeneralTransform3DCollection.cs
- RadioButtonFlatAdapter.cs
- PrintingPermissionAttribute.cs
- relpropertyhelper.cs
- HtmlTableRowCollection.cs
- AnimatedTypeHelpers.cs
- SecurityDescriptor.cs
- NullReferenceException.cs
- HandledMouseEvent.cs
- CipherData.cs
- DetailsViewRowCollection.cs
- TransformedBitmap.cs
- IssuedSecurityTokenParameters.cs
- SQLUtility.cs
- InstalledFontCollection.cs
- InvalidProgramException.cs
- ParallelActivityDesigner.cs
- SurrogateSelector.cs
- SynchronizationLockException.cs
- ContractMapping.cs
- RestHandlerFactory.cs
- XsdDuration.cs
- QueryAccessibilityHelpEvent.cs
- InlineObject.cs
- TraceHandler.cs
- KeyValueSerializer.cs
- GlyphTypeface.cs
- HttpCookieCollection.cs
- SystemFonts.cs
- FrameworkReadOnlyPropertyMetadata.cs
- WebPartHeaderCloseVerb.cs
- ValidationErrorInfo.cs
- ConstructorExpr.cs
- Aggregates.cs
- WebContentFormatHelper.cs
- CodeSubDirectory.cs
- RewritingSimplifier.cs
- LogicalExpr.cs
- ReferenceService.cs
- CheckBoxFlatAdapter.cs
- _Events.cs
- Menu.cs
- IsolatedStorageFilePermission.cs
- X509CertificateChain.cs
- InteropAutomationProvider.cs
- SafeCryptoHandles.cs
- TabletDeviceInfo.cs
- SyndicationSerializer.cs
- ExeContext.cs
- GetChildSubtree.cs
- Attributes.cs
- TreeNodeCollection.cs
- XsdBuilder.cs
- BookmarkNameHelper.cs
- DesignTimeSiteMapProvider.cs
- NativeMethods.cs
- CodeValidator.cs
- BaseComponentEditor.cs
- XmlChildNodes.cs
- SubpageParagraph.cs
- Substitution.cs
- DesignerVerb.cs
- ByteStream.cs
- TemplatedWizardStep.cs
- ColorConverter.cs
- XmlChildEnumerator.cs
- Listener.cs
- OperatingSystem.cs
- SqlReferenceCollection.cs
- EdmToObjectNamespaceMap.cs
- XmlMemberMapping.cs
- ImageListUtils.cs
- sqlmetadatafactory.cs
- StatusBarDrawItemEvent.cs
- DispatcherFrame.cs
- TTSEngineProxy.cs
- DefinitionBase.cs
- CfgParser.cs
- ThemeDictionaryExtension.cs
- bidPrivateBase.cs
- DataGridItemCollection.cs
- StandardToolWindows.cs
- HttpModuleCollection.cs
- ManipulationDelta.cs
- XmlSerializerSection.cs
- Pen.cs
- Label.cs
- QuaternionConverter.cs
- XmlElementList.cs
- SmiContextFactory.cs