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
- DbSetClause.cs
- COM2ComponentEditor.cs
- ActiveXHelper.cs
- ViewPort3D.cs
- TextEditorThreadLocalStore.cs
- UriGenerator.cs
- ConfigXmlWhitespace.cs
- GridViewHeaderRowPresenter.cs
- CopyAttributesAction.cs
- CodeAccessPermission.cs
- ScriptResourceAttribute.cs
- HtmlHead.cs
- _AutoWebProxyScriptEngine.cs
- ImageClickEventArgs.cs
- Soap11ServerProtocol.cs
- WorkflowElementDialog.cs
- Triplet.cs
- SuppressMergeCheckAttribute.cs
- SqlConnectionPoolProviderInfo.cs
- SqlExpressionNullability.cs
- NavigationWindow.cs
- DelayedRegex.cs
- OracleDataAdapter.cs
- ControlIdConverter.cs
- UnsafeNativeMethods.cs
- MetadataArtifactLoaderCompositeResource.cs
- IfAction.cs
- TemplateBindingExpression.cs
- SatelliteContractVersionAttribute.cs
- FrameworkContextData.cs
- ReflectPropertyDescriptor.cs
- X509CertificateTrustedIssuerElement.cs
- NavigationWindow.cs
- PerspectiveCamera.cs
- LinearKeyFrames.cs
- NotImplementedException.cs
- PropVariant.cs
- CatalogPartChrome.cs
- httpserverutility.cs
- ImmutableAssemblyCacheEntry.cs
- MobileContainerDesigner.cs
- regiisutil.cs
- ToolBarPanel.cs
- MailWebEventProvider.cs
- StringKeyFrameCollection.cs
- _CookieModule.cs
- VarRefManager.cs
- DataGridSortCommandEventArgs.cs
- InvalidCastException.cs
- _ScatterGatherBuffers.cs
- AdRotator.cs
- HostingEnvironmentException.cs
- PageSetupDialog.cs
- PageParser.cs
- DatatypeImplementation.cs
- Policy.cs
- LogExtentCollection.cs
- Italic.cs
- FontConverter.cs
- ConnectorRouter.cs
- IisNotInstalledException.cs
- Accessible.cs
- BuildManager.cs
- WindowsScroll.cs
- SessionStateItemCollection.cs
- WebDisplayNameAttribute.cs
- XmlSchemaSequence.cs
- MapPathBasedVirtualPathProvider.cs
- SelectionItemPattern.cs
- ContainerControl.cs
- BoundingRectTracker.cs
- Setter.cs
- SqlConnectionFactory.cs
- Grammar.cs
- SerializeAbsoluteContext.cs
- GestureRecognizer.cs
- ThumbAutomationPeer.cs
- EntitySqlQueryBuilder.cs
- MasterPage.cs
- ActiveXContainer.cs
- TypeLoadException.cs
- PointConverter.cs
- ObjectParameterCollection.cs
- InternalBufferOverflowException.cs
- TypeInfo.cs
- Label.cs
- ViewUtilities.cs
- HostedHttpContext.cs
- EntityException.cs
- DocumentReferenceCollection.cs
- SystemResources.cs
- ProvidersHelper.cs
- ScriptingJsonSerializationSection.cs
- FormsAuthenticationEventArgs.cs
- HashMembershipCondition.cs
- TabRenderer.cs
- SettingsPropertyValueCollection.cs
- HttpAsyncResult.cs
- CoreChannel.cs
- Faults.cs