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
- WeakHashtable.cs
- OutputCacheModule.cs
- ContextStack.cs
- PnrpPeerResolver.cs
- WebPartVerbsEventArgs.cs
- BulletedList.cs
- InfoCardArgumentException.cs
- ETagAttribute.cs
- FindCriteriaApril2005.cs
- AncestorChangedEventArgs.cs
- SigningCredentials.cs
- XhtmlConformanceSection.cs
- RemotingConfigParser.cs
- XmlFormatExtensionPointAttribute.cs
- PolicyLevel.cs
- RenderingEventArgs.cs
- ExpressionWriter.cs
- DynamicDataRouteHandler.cs
- SmiEventStream.cs
- ControlPropertyNameConverter.cs
- InputScopeAttribute.cs
- ConfigXmlCDataSection.cs
- TextComposition.cs
- SerializableReadOnlyDictionary.cs
- PrivilegedConfigurationManager.cs
- SystemIcmpV6Statistics.cs
- DesignOnlyAttribute.cs
- UIPropertyMetadata.cs
- SessionSwitchEventArgs.cs
- PublishLicense.cs
- StateMachineExecutionState.cs
- WebProxyScriptElement.cs
- SymbolResolver.cs
- ApplicationSettingsBase.cs
- FtpRequestCacheValidator.cs
- Separator.cs
- XmlSchemaSimpleTypeList.cs
- Site.cs
- loginstatus.cs
- XmlSchemaInclude.cs
- XmlComment.cs
- ListControl.cs
- FileLoadException.cs
- AspNetSynchronizationContext.cs
- DataColumnChangeEvent.cs
- SQLStringStorage.cs
- VariableQuery.cs
- SupportingTokenSecurityTokenResolver.cs
- PersonalizationProviderCollection.cs
- InvalidComObjectException.cs
- CdpEqualityComparer.cs
- DataProtection.cs
- FilterableAttribute.cs
- ByteStorage.cs
- PipelineDeploymentState.cs
- TypedColumnHandler.cs
- CngKey.cs
- DummyDataSource.cs
- TrackBar.cs
- Scene3D.cs
- TextBoxBase.cs
- AuthorizationRuleCollection.cs
- SqlDataSourceView.cs
- PrimitiveCodeDomSerializer.cs
- DnsPermission.cs
- Style.cs
- embossbitmapeffect.cs
- MetadataItemSerializer.cs
- RSATokenProvider.cs
- WebPartZoneBase.cs
- WindowsListViewGroup.cs
- FormView.cs
- Panel.cs
- TaskFormBase.cs
- XmlLinkedNode.cs
- InternalPolicyElement.cs
- CacheSection.cs
- GridLengthConverter.cs
- DeflateStreamAsyncResult.cs
- ExpressionWriter.cs
- PointKeyFrameCollection.cs
- AdapterDictionary.cs
- ScrollPattern.cs
- AspNetCacheProfileAttribute.cs
- DeviceFiltersSection.cs
- PathGeometry.cs
- TdsParserSafeHandles.cs
- CfgRule.cs
- UniqueEventHelper.cs
- UpdateCommand.cs
- Storyboard.cs
- TrustSection.cs
- DataListCommandEventArgs.cs
- ItemsControl.cs
- OTFRasterizer.cs
- GridViewRowCollection.cs
- UInt32Storage.cs
- EntityModelBuildProvider.cs
- ToolStripStatusLabel.cs
- DataListItemCollection.cs