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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ButtonChrome.cs
- PropertyGeneratedEventArgs.cs
- EntityConnectionStringBuilder.cs
- SqlOuterApplyReducer.cs
- TypefaceMap.cs
- CompilerGlobalScopeAttribute.cs
- WindowsImpersonationContext.cs
- OleDbDataAdapter.cs
- RowToParametersTransformer.cs
- WebReferencesBuildProvider.cs
- CqlGenerator.cs
- ClipboardProcessor.cs
- ImportCatalogPart.cs
- UrlParameterReader.cs
- TimeSpanSecondsConverter.cs
- HierarchicalDataTemplate.cs
- IgnoreDeviceFilterElement.cs
- SkewTransform.cs
- SessionPageStateSection.cs
- ExtendedTransformFactory.cs
- Vector3DAnimation.cs
- TextModifierScope.cs
- RegisterResponseInfo.cs
- Renderer.cs
- DrawingImage.cs
- Screen.cs
- MimeImporter.cs
- MultiAsyncResult.cs
- ListItemCollection.cs
- XmlSchemaExternal.cs
- EventLogPermissionHolder.cs
- DesignSurfaceManager.cs
- Parser.cs
- SemaphoreFullException.cs
- MessagePropertyDescription.cs
- ColumnResizeAdorner.cs
- MergePropertyDescriptor.cs
- HtmlGenericControl.cs
- FixedHighlight.cs
- BooleanProjectedSlot.cs
- NetWebProxyFinder.cs
- SetStateDesigner.cs
- ValidationError.cs
- TextRangeEditLists.cs
- BitmapSourceSafeMILHandle.cs
- ColorDialog.cs
- FlowDocumentReaderAutomationPeer.cs
- SimpleFieldTemplateUserControl.cs
- TransformerInfo.cs
- SafeNativeMethodsOther.cs
- KeyboardEventArgs.cs
- DataComponentMethodGenerator.cs
- RelationshipSet.cs
- ImmutableObjectAttribute.cs
- RTLAwareMessageBox.cs
- DataTableReaderListener.cs
- FunctionQuery.cs
- SafeHandles.cs
- SafeHandles.cs
- GridItem.cs
- ListBase.cs
- EntityDataSourceReferenceGroup.cs
- StateMachineTimers.cs
- KeyedCollection.cs
- TimeoutException.cs
- SecurityElement.cs
- DataGridViewColumnDesigner.cs
- Cell.cs
- RulePatternOps.cs
- SvcFileManager.cs
- CrossAppDomainChannel.cs
- autovalidator.cs
- EngineSite.cs
- SqlTrackingService.cs
- DbDataRecord.cs
- ImageAttributes.cs
- webeventbuffer.cs
- GeneralTransformGroup.cs
- EntityProviderFactory.cs
- SetterBaseCollection.cs
- ApplicationFileParser.cs
- SettingsAttributeDictionary.cs
- TemplatedEditableDesignerRegion.cs
- DataControlButton.cs
- ConfigDefinitionUpdates.cs
- PointLight.cs
- ElementHostAutomationPeer.cs
- IIS7UserPrincipal.cs
- FacetDescriptionElement.cs
- Win32Native.cs
- controlskin.cs
- HelpEvent.cs
- ObjectAnimationBase.cs
- TypedElement.cs
- OleDbConnection.cs
- ParameterElement.cs
- TextEditorSpelling.cs
- ChameleonKey.cs
- DocumentPageViewAutomationPeer.cs
- OperandQuery.cs