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
- Expander.cs
- ExpressionNode.cs
- SQLBytes.cs
- UserControlBuildProvider.cs
- ThumbButtonInfo.cs
- BulletChrome.cs
- Facet.cs
- GroupStyle.cs
- FocusWithinProperty.cs
- AuthenticatedStream.cs
- SqlReferenceCollection.cs
- ObjectQueryState.cs
- Process.cs
- SoapTypeAttribute.cs
- WindowsSpinner.cs
- InvalidDataContractException.cs
- TemplateControl.cs
- XmlParserContext.cs
- WorkflowPageSetupDialog.cs
- COAUTHINFO.cs
- ContentPresenter.cs
- SID.cs
- DataServiceProviderMethods.cs
- OleDbException.cs
- x509utils.cs
- FtpWebRequest.cs
- ProfileParameter.cs
- PropertyDescriptorComparer.cs
- ProcessInfo.cs
- Base64Decoder.cs
- SpellCheck.cs
- SpnegoTokenAuthenticator.cs
- FormatSettings.cs
- SqlDataSourceSelectingEventArgs.cs
- SHA1.cs
- HttpStreamXmlDictionaryReader.cs
- xmlfixedPageInfo.cs
- recordstate.cs
- DnsPermission.cs
- ValidationError.cs
- DefaultWorkflowSchedulerService.cs
- DesignerActionKeyboardBehavior.cs
- StringArrayConverter.cs
- ResourceReferenceExpression.cs
- LinkClickEvent.cs
- BinHexEncoder.cs
- EntitySetDataBindingList.cs
- TextDecorationCollectionConverter.cs
- MimeParameterWriter.cs
- _RegBlobWebProxyDataBuilder.cs
- PersonalizationProvider.cs
- TransformProviderWrapper.cs
- TdsParser.cs
- WpfKnownMemberInvoker.cs
- CharEntityEncoderFallback.cs
- SettingsPropertyValueCollection.cs
- TextDecorationCollectionConverter.cs
- ItemCollection.cs
- HtmlElementErrorEventArgs.cs
- ImageListUtils.cs
- WebPartsPersonalizationAuthorization.cs
- StrokeNodeEnumerator.cs
- WebEventCodes.cs
- XamlRtfConverter.cs
- XmlSchemaException.cs
- AutomationIdentifier.cs
- StateInitialization.cs
- HttpServerUtilityBase.cs
- ContainerAction.cs
- XmlDataCollection.cs
- ShaderRenderModeValidation.cs
- ThreadAbortException.cs
- SimpleExpression.cs
- ADMembershipProvider.cs
- SessionEndingCancelEventArgs.cs
- CodeDOMProvider.cs
- CodeRemoveEventStatement.cs
- GroupBoxRenderer.cs
- CommentEmitter.cs
- SqlUserDefinedAggregateAttribute.cs
- SiteMapNode.cs
- XmlChoiceIdentifierAttribute.cs
- DeclaredTypeValidator.cs
- ListSourceHelper.cs
- XmlSchemaComplexContent.cs
- ImpersonationContext.cs
- Page.cs
- ClrPerspective.cs
- StorageFunctionMapping.cs
- MimeMapping.cs
- Control.cs
- StringKeyFrameCollection.cs
- WsdlBuildProvider.cs
- DocComment.cs
- CFGGrammar.cs
- ServiceOperationParameter.cs
- TextEditorTables.cs
- CopyAttributesAction.cs
- SerializationInfo.cs
- NonParentingControl.cs