Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- ProxyGenerationError.cs
- SettingsBase.cs
- IOException.cs
- PropertyDescriptorComparer.cs
- HtmlTableCellCollection.cs
- SecurityContextSecurityTokenParameters.cs
- SqlDataSourceFilteringEventArgs.cs
- AtlasWeb.Designer.cs
- ComplexTypeEmitter.cs
- EmbeddedMailObjectCollectionEditor.cs
- LockRecursionException.cs
- TextEditorTyping.cs
- TextShapeableCharacters.cs
- StreamUpgradeAcceptor.cs
- ParameterInfo.cs
- LowerCaseStringConverter.cs
- SharedUtils.cs
- UnsafeNativeMethods.cs
- ManagedCodeMarkers.cs
- ContextMenu.cs
- XmlDataSourceNodeDescriptor.cs
- FacetChecker.cs
- PenThreadWorker.cs
- DataRowComparer.cs
- DispatcherExceptionFilterEventArgs.cs
- DesignerFrame.cs
- TogglePatternIdentifiers.cs
- UniqueEventHelper.cs
- RemotingConfiguration.cs
- ClientScriptManager.cs
- CachedFontFamily.cs
- SByteStorage.cs
- ProfilePropertyNameValidator.cs
- Number.cs
- TreeViewTemplateSelector.cs
- ControlValuePropertyAttribute.cs
- TransactionInformation.cs
- TypeBuilder.cs
- MemberProjectionIndex.cs
- InputLanguageProfileNotifySink.cs
- MessageQueueKey.cs
- XmlCharCheckingReader.cs
- AspProxy.cs
- PropertyPathConverter.cs
- Random.cs
- ArcSegment.cs
- GatewayDefinition.cs
- PositiveTimeSpanValidatorAttribute.cs
- OracleFactory.cs
- ConfigPathUtility.cs
- Accessible.cs
- NameValueSectionHandler.cs
- FileStream.cs
- DisplayMemberTemplateSelector.cs
- WindowAutomationPeer.cs
- OperationPickerDialog.cs
- ProtectedConfigurationProviderCollection.cs
- OleDbException.cs
- ColumnReorderedEventArgs.cs
- HttpDictionary.cs
- relpropertyhelper.cs
- BamlLocalizableResource.cs
- ArraySubsetEnumerator.cs
- PassportAuthenticationModule.cs
- ServiceReference.cs
- precedingquery.cs
- ParameterBuilder.cs
- ApplicationActivator.cs
- SoapTypeAttribute.cs
- TagMapInfo.cs
- latinshape.cs
- RuntimeConfig.cs
- ExceptionRoutedEventArgs.cs
- unsafenativemethodstextservices.cs
- WebPartZone.cs
- PixelShader.cs
- ZipPackage.cs
- FormsAuthentication.cs
- TextBoxRenderer.cs
- IMembershipProvider.cs
- ExtractedStateEntry.cs
- PenContexts.cs
- MemberDescriptor.cs
- DataControlLinkButton.cs
- HTTPRemotingHandler.cs
- UniqueIdentifierService.cs
- UnionCodeGroup.cs
- BehaviorEditorPart.cs
- LayoutTableCell.cs
- FileAuthorizationModule.cs
- MediaSystem.cs
- Matrix.cs
- SqlConnectionString.cs
- CustomWebEventKey.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- SplineKeyFrames.cs
- MergablePropertyAttribute.cs
- NullableLongAverageAggregationOperator.cs
- ExpandCollapseIsCheckedConverter.cs
- SessionState.cs