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
- CfgParser.cs
- ColumnTypeConverter.cs
- ConversionHelper.cs
- BulletedList.cs
- StaticFileHandler.cs
- RelationshipDetailsCollection.cs
- ProfileEventArgs.cs
- BuildResult.cs
- Vars.cs
- HostingPreferredMapPath.cs
- TypeElementCollection.cs
- EmptyStringExpandableObjectConverter.cs
- XmlDataProvider.cs
- DataControlLinkButton.cs
- SecurityHelper.cs
- BrushValueSerializer.cs
- StringUtil.cs
- BooleanExpr.cs
- GridViewSortEventArgs.cs
- Pair.cs
- IxmlLineInfo.cs
- WmpBitmapEncoder.cs
- ScopedKnownTypes.cs
- FontConverter.cs
- CharacterMetricsDictionary.cs
- AuthStoreRoleProvider.cs
- AnchoredBlock.cs
- _AutoWebProxyScriptHelper.cs
- Assert.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- SelectionListDesigner.cs
- ExceptionNotification.cs
- SqlConnectionManager.cs
- UserMapPath.cs
- XmlSchemaObjectCollection.cs
- EventNotify.cs
- DbConnectionStringBuilder.cs
- ResourcePool.cs
- RSAPKCS1SignatureFormatter.cs
- TypeBuilder.cs
- NameSpaceExtractor.cs
- ConfigXmlText.cs
- CalendarDataBindingHandler.cs
- ObjectToModelValueConverter.cs
- PrintPreviewDialog.cs
- PermissionSet.cs
- DataPagerFieldCommandEventArgs.cs
- ClientRoleProvider.cs
- WebPartsSection.cs
- Row.cs
- LabelEditEvent.cs
- MessageSmuggler.cs
- DataKeyCollection.cs
- SimpleLine.cs
- PeerName.cs
- Selection.cs
- SecurityTokenAuthenticator.cs
- AutomationElementCollection.cs
- SqlDependencyUtils.cs
- CompoundFileStreamReference.cs
- ColumnMapTranslator.cs
- StateBag.cs
- isolationinterop.cs
- ListView.cs
- HtmlControl.cs
- MethodBuilderInstantiation.cs
- FillErrorEventArgs.cs
- VerticalAlignConverter.cs
- PropertyPath.cs
- DateTimeFormat.cs
- SessionEndedEventArgs.cs
- CreateInstanceBinder.cs
- TrustLevelCollection.cs
- ColumnMap.cs
- KeyValueConfigurationElement.cs
- XsltLoader.cs
- DataKeyArray.cs
- PolicyUnit.cs
- Memoizer.cs
- DistinctQueryOperator.cs
- AttachedAnnotationChangedEventArgs.cs
- XdrBuilder.cs
- HtmlShimManager.cs
- HyperLinkDesigner.cs
- SmtpNetworkElement.cs
- StateMachineSubscription.cs
- listviewsubitemcollectioneditor.cs
- InstanceCreationEditor.cs
- DataControlFieldHeaderCell.cs
- ScaleTransform.cs
- AdapterUtil.cs
- InvalidComObjectException.cs
- ProjectionCamera.cs
- TimerEventSubscription.cs
- StatusBarItem.cs
- ImageSource.cs
- DeploymentExceptionMapper.cs
- _ScatterGatherBuffers.cs
- SqlUdtInfo.cs
- ImageAnimator.cs