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
- Attributes.cs
- DocumentApplicationJournalEntry.cs
- RawTextInputReport.cs
- SizeKeyFrameCollection.cs
- SelectedPathEditor.cs
- RedirectionProxy.cs
- CqlParser.cs
- WebPartDescription.cs
- _LoggingObject.cs
- XmlSchemaDocumentation.cs
- CodeFieldReferenceExpression.cs
- WindowsSysHeader.cs
- UnsafeCollabNativeMethods.cs
- WebPartDeleteVerb.cs
- ClickablePoint.cs
- MimeMapping.cs
- BitConverter.cs
- SessionState.cs
- BinaryWriter.cs
- CodeBinaryOperatorExpression.cs
- TextFindEngine.cs
- DbConnectionStringCommon.cs
- SymbolMethod.cs
- OutputCacheProfileCollection.cs
- BuildProviderAppliesToAttribute.cs
- OdbcConnectionFactory.cs
- BorderGapMaskConverter.cs
- DbConnectionPoolIdentity.cs
- MappingSource.cs
- SiteMembershipCondition.cs
- Activator.cs
- PageParser.cs
- CheckBoxField.cs
- MultiAsyncResult.cs
- InlineObject.cs
- Triplet.cs
- RenderingEventArgs.cs
- Collection.cs
- MinimizableAttributeTypeConverter.cs
- LoginDesignerUtil.cs
- DataViewSetting.cs
- DbMetaDataCollectionNames.cs
- GridViewRowCollection.cs
- EntryWrittenEventArgs.cs
- TextTreeRootTextBlock.cs
- X509SecurityTokenAuthenticator.cs
- XslTransform.cs
- AndCondition.cs
- TemplatedAdorner.cs
- OneToOneMappingSerializer.cs
- Debug.cs
- TextBlockAutomationPeer.cs
- DataRelation.cs
- SelfIssuedAuthRSAPKCS1SignatureFormatter.cs
- CodeNamespaceImport.cs
- DataGridViewRowCancelEventArgs.cs
- HtmlControlDesigner.cs
- SqlAliaser.cs
- ContainerUtilities.cs
- EventLogQuery.cs
- WebPartTransformer.cs
- BroadcastEventHelper.cs
- SuppressMessageAttribute.cs
- ColumnResizeAdorner.cs
- LogLogRecordHeader.cs
- JapaneseLunisolarCalendar.cs
- ControlValuePropertyAttribute.cs
- ConnectionInterfaceCollection.cs
- HeaderCollection.cs
- FlatButtonAppearance.cs
- ColumnMapCopier.cs
- ImageKeyConverter.cs
- CodeTypeReference.cs
- OutputWindow.cs
- WebPartVerb.cs
- ClipboardData.cs
- RepeaterItem.cs
- DataSvcMapFileSerializer.cs
- ExpressionBindingCollection.cs
- BlobPersonalizationState.cs
- ReflectionPermission.cs
- Set.cs
- BinHexEncoding.cs
- GenerateDerivedKeyRequest.cs
- CompositeControl.cs
- SafeFileMappingHandle.cs
- TypeForwardedFromAttribute.cs
- CustomWebEventKey.cs
- DbConnectionPool.cs
- IPPacketInformation.cs
- PersistenceException.cs
- XmlCompatibilityReader.cs
- DocumentsTrace.cs
- ItemCollection.cs
- Quaternion.cs
- StateMachineWorkflowInstance.cs
- Fonts.cs
- DynamicFilterExpression.cs
- IgnoreFlushAndCloseStream.cs
- SiteMapNode.cs