Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EntityDataSourceContainerNameItem.cs
- CodeSnippetCompileUnit.cs
- JsonReader.cs
- ObjectTokenCategory.cs
- TableParaClient.cs
- SafeNativeMethods.cs
- columnmapfactory.cs
- MemberBinding.cs
- TextContainerChangedEventArgs.cs
- RawUIStateInputReport.cs
- FloaterBaseParaClient.cs
- SerializationHelper.cs
- ContextProperty.cs
- PtsCache.cs
- HtmlInputReset.cs
- DeferredElementTreeState.cs
- DataPagerFieldItem.cs
- XmlCharacterData.cs
- NotificationContext.cs
- Main.cs
- ClaimTypes.cs
- XsdDateTime.cs
- CharUnicodeInfo.cs
- CodePropertyReferenceExpression.cs
- JavaScriptString.cs
- PageWrapper.cs
- PropertyChangedEventManager.cs
- SafeHandles.cs
- XmlIlTypeHelper.cs
- LookupBindingPropertiesAttribute.cs
- MetadataAssemblyHelper.cs
- MemberJoinTreeNode.cs
- ConnectionPointCookie.cs
- PassportAuthenticationEventArgs.cs
- ContextMenuAutomationPeer.cs
- MatrixValueSerializer.cs
- BuildManagerHost.cs
- SchemaImporterExtensionsSection.cs
- ToolStripRendererSwitcher.cs
- SmtpFailedRecipientException.cs
- StateInitializationDesigner.cs
- CssClassPropertyAttribute.cs
- ServiceEndpoint.cs
- GenericAuthenticationEventArgs.cs
- WindowsStatic.cs
- TextTreeTextNode.cs
- AssemblyBuilder.cs
- CompilationUtil.cs
- TextParagraph.cs
- precedingsibling.cs
- Switch.cs
- OracleSqlParser.cs
- GlyphTypeface.cs
- BaseDataListDesigner.cs
- X509SecurityToken.cs
- DropSource.cs
- CodeExpressionRuleDeclaration.cs
- OdbcParameter.cs
- MediaSystem.cs
- DataError.cs
- AutomationPattern.cs
- SharedConnectionInfo.cs
- EntityWithChangeTrackerStrategy.cs
- SslStream.cs
- DomNameTable.cs
- IdnElement.cs
- KnownTypes.cs
- PreservationFileWriter.cs
- WebConfigurationFileMap.cs
- GroupBoxRenderer.cs
- FormClosedEvent.cs
- InputProcessorProfiles.cs
- Glyph.cs
- Timer.cs
- ControlPersister.cs
- SchemaCollectionCompiler.cs
- OleDbException.cs
- TakeQueryOptionExpression.cs
- ClientSettingsProvider.cs
- Monitor.cs
- FontNamesConverter.cs
- ItemMap.cs
- MaskDescriptors.cs
- SignedInfo.cs
- recordstate.cs
- Operator.cs
- BreadCrumbTextConverter.cs
- GeometryCombineModeValidation.cs
- CustomError.cs
- ScrollData.cs
- HandleCollector.cs
- HttpProfileBase.cs
- RelativeSource.cs
- HitTestDrawingContextWalker.cs
- ParseChildrenAsPropertiesAttribute.cs
- FontUnitConverter.cs
- XmlHierarchicalEnumerable.cs
- FolderBrowserDialog.cs
- StrokeNodeData.cs
- WebServiceTypeData.cs