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
- ObjectViewFactory.cs
- PeerInvitationResponse.cs
- StyleTypedPropertyAttribute.cs
- ComMethodElement.cs
- SqlBuffer.cs
- Guid.cs
- BufferedGraphicsContext.cs
- FrameworkElement.cs
- __ComObject.cs
- baseaxisquery.cs
- CreateUserWizard.cs
- SetterBaseCollection.cs
- ObjectListComponentEditor.cs
- DataGridViewCellFormattingEventArgs.cs
- PtsCache.cs
- ToolboxComponentsCreatingEventArgs.cs
- SQLGuidStorage.cs
- x509store.cs
- GridViewRowEventArgs.cs
- Int32Rect.cs
- MDIClient.cs
- ImmutableCollection.cs
- ClientBuildManager.cs
- Convert.cs
- DataGridColumnsPage.cs
- MatrixCamera.cs
- DataServiceRequestException.cs
- PointCollection.cs
- TypeLoadException.cs
- DataSourceNameHandler.cs
- mediapermission.cs
- ExpressionHelper.cs
- DesignerAttribute.cs
- ClientConvert.cs
- ISSmlParser.cs
- GridViewRowEventArgs.cs
- OraclePermission.cs
- VisualStateGroup.cs
- HashHelpers.cs
- Int32CAMarshaler.cs
- SqlDataSourceCommandEventArgs.cs
- QueryCursorEventArgs.cs
- ScriptingWebServicesSectionGroup.cs
- ObjectStateFormatter.cs
- WsdlBuildProvider.cs
- DataTablePropertyDescriptor.cs
- HwndKeyboardInputProvider.cs
- GlobalizationSection.cs
- XmlSignificantWhitespace.cs
- XsltContext.cs
- EntityContainerEntitySetDefiningQuery.cs
- XmlILAnnotation.cs
- Directory.cs
- CultureData.cs
- MachineKeySection.cs
- MSHTMLHost.cs
- BrowserCapabilitiesCompiler.cs
- GridViewUpdatedEventArgs.cs
- UICuesEvent.cs
- ObjectAnimationBase.cs
- MailSettingsSection.cs
- EmptyCollection.cs
- DataGridViewEditingControlShowingEventArgs.cs
- WindowsBrush.cs
- Misc.cs
- FontDialog.cs
- VScrollBar.cs
- RawStylusInputCustomDataList.cs
- ImageProxy.cs
- TickBar.cs
- SpotLight.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- MetadataItemEmitter.cs
- Bidi.cs
- ToolStripScrollButton.cs
- ToolStripMenuItem.cs
- RunWorkerCompletedEventArgs.cs
- SmiSettersStream.cs
- OptimizerPatterns.cs
- DBDataPermissionAttribute.cs
- Symbol.cs
- HatchBrush.cs
- WindowsTab.cs
- AlternateView.cs
- MetadataItem.cs
- OperationParameterInfoCollection.cs
- PartBasedPackageProperties.cs
- LoadedOrUnloadedOperation.cs
- ContextQuery.cs
- ByteStreamMessage.cs
- DependencyPropertyConverter.cs
- PerformanceCounterPermissionEntryCollection.cs
- DataGridViewToolTip.cs
- ScaleTransform.cs
- DockPanel.cs
- WebControl.cs
- AutomationPropertyInfo.cs
- PrivilegedConfigurationManager.cs
- StrongNameIdentityPermission.cs
- GlyphInfoList.cs