Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- AssociationTypeEmitter.cs
- SafeEventLogReadHandle.cs
- GuidTagList.cs
- OleDbException.cs
- WebBrowserProgressChangedEventHandler.cs
- ZoneMembershipCondition.cs
- TCPListener.cs
- DynamicDataResources.Designer.cs
- SerializationException.cs
- MobileControl.cs
- DbConnectionFactory.cs
- OleDbSchemaGuid.cs
- LazyInitializer.cs
- TraceInternal.cs
- MsmqIntegrationReceiveParameters.cs
- Semaphore.cs
- HandlerMappingMemo.cs
- PropertyPanel.cs
- Int16.cs
- TextPenaltyModule.cs
- Point4D.cs
- BitHelper.cs
- VerificationAttribute.cs
- XmlCollation.cs
- ResizeGrip.cs
- JournalNavigationScope.cs
- ProfileInfo.cs
- Trace.cs
- XmlQueryTypeFactory.cs
- SelectionPattern.cs
- SystemNetworkInterface.cs
- FixedHyperLink.cs
- SafeEventHandle.cs
- Visitor.cs
- XmlEncodedRawTextWriter.cs
- LinkedResource.cs
- RequestDescription.cs
- Operators.cs
- UniqueEventHelper.cs
- SeekableReadStream.cs
- JavaScriptString.cs
- WMICapabilities.cs
- ControlIdConverter.cs
- LinkLabelLinkClickedEvent.cs
- IItemContainerGenerator.cs
- MimeBasePart.cs
- FormViewRow.cs
- RadialGradientBrush.cs
- CompilerTypeWithParams.cs
- SystemUnicastIPAddressInformation.cs
- DictionarySectionHandler.cs
- SqlDataSourceSelectingEventArgs.cs
- RectAnimationBase.cs
- SqlDependencyUtils.cs
- StackOverflowException.cs
- NoClickablePointException.cs
- DataSourceXmlAttributeAttribute.cs
- TextLineResult.cs
- ViewUtilities.cs
- ImageFormat.cs
- ProvidePropertyAttribute.cs
- WebPartConnectionsConnectVerb.cs
- HyperLink.cs
- ContextQuery.cs
- DataPagerField.cs
- X509Utils.cs
- AdCreatedEventArgs.cs
- GridViewColumn.cs
- EncryptedKey.cs
- TimerEventSubscriptionCollection.cs
- DataServiceOperationContext.cs
- ImportContext.cs
- ToolStripDesignerAvailabilityAttribute.cs
- TableLayoutSettings.cs
- WinEventQueueItem.cs
- SizeIndependentAnimationStorage.cs
- NullableDoubleAverageAggregationOperator.cs
- XNodeValidator.cs
- FileSystemInfo.cs
- CodeExpressionRuleDeclaration.cs
- Camera.cs
- DirectionalLight.cs
- DbUpdateCommandTree.cs
- VirtualStackFrame.cs
- webproxy.cs
- XPathNavigator.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- DateTimeValueSerializerContext.cs
- XmlSerializerObjectSerializer.cs
- SrgsRule.cs
- MetabaseReader.cs
- DrawListViewItemEventArgs.cs
- BrowserDefinitionCollection.cs
- WebAdminConfigurationHelper.cs
- StructuralObject.cs
- Inline.cs
- ColumnResizeAdorner.cs
- NativeMethodsOther.cs
- IntegerCollectionEditor.cs
- DBCommandBuilder.cs