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
- CryptoProvider.cs
- BatchParser.cs
- GetPageCompletedEventArgs.cs
- CommandBinding.cs
- TraceRecord.cs
- Publisher.cs
- TaskExceptionHolder.cs
- HyperlinkAutomationPeer.cs
- RegexReplacement.cs
- ContainerControl.cs
- DrawTreeNodeEventArgs.cs
- SystemIPGlobalProperties.cs
- QueryOperationResponseOfT.cs
- BoundColumn.cs
- XmlILStorageConverter.cs
- RefExpr.cs
- InvalidFilterCriteriaException.cs
- RepeaterItem.cs
- DragEvent.cs
- IdentityModelDictionary.cs
- GPRECTF.cs
- CqlParser.cs
- MethodBuilder.cs
- BindingExpression.cs
- ItemCheckEvent.cs
- XmlAttributeAttribute.cs
- AssertFilter.cs
- OdbcRowUpdatingEvent.cs
- Connection.cs
- QueryExtender.cs
- ActivitySurrogate.cs
- BuilderPropertyEntry.cs
- RestClientProxyHandler.cs
- OutputCacheProfileCollection.cs
- WindowsTooltip.cs
- HttpHeaderCollection.cs
- PeerServiceMessageContracts.cs
- SystemDropShadowChrome.cs
- MouseActionValueSerializer.cs
- EpmCustomContentWriterNodeData.cs
- Section.cs
- RowBinding.cs
- Image.cs
- CustomErrorCollection.cs
- SafeRightsManagementHandle.cs
- ParallelDesigner.cs
- ReflectionUtil.cs
- ForeignKeyConstraint.cs
- MemberRestriction.cs
- _ListenerResponseStream.cs
- X509SubjectKeyIdentifierClause.cs
- OracleBinary.cs
- DigestTraceRecordHelper.cs
- _SslSessionsCache.cs
- FormViewInsertedEventArgs.cs
- WebPartTransformerAttribute.cs
- Geometry3D.cs
- BamlLocalizer.cs
- ResXResourceReader.cs
- ProfileSettingsCollection.cs
- DoubleLink.cs
- TableFieldsEditor.cs
- ImplicitInputBrush.cs
- PrivilegedConfigurationManager.cs
- ThrowHelper.cs
- DescendantBaseQuery.cs
- CodeComment.cs
- PartialTrustValidationBehavior.cs
- ColorTranslator.cs
- ControlParameter.cs
- ConfigurationElement.cs
- DifferencingCollection.cs
- Bitmap.cs
- ErrorHandlingReceiver.cs
- SecurityProtocol.cs
- PropertyPath.cs
- xsdvalidator.cs
- WebPartVerbsEventArgs.cs
- NonceCache.cs
- GroupItem.cs
- Compilation.cs
- dataobject.cs
- IisTraceWebEventProvider.cs
- WorkflowDesignerColors.cs
- ResourceProperty.cs
- ValueSerializerAttribute.cs
- AppDomainProtocolHandler.cs
- ColorDialog.cs
- Bezier.cs
- RegionInfo.cs
- ContextQuery.cs
- DropDownList.cs
- EllipticalNodeOperations.cs
- AdornerPresentationContext.cs
- DataGridViewCellFormattingEventArgs.cs
- DataRelationPropertyDescriptor.cs
- XmlSchemaFacet.cs
- UITypeEditor.cs
- EtwTrace.cs
- XmlLinkedNode.cs