Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AssertValidation.cs
- TableItemPattern.cs
- SecurityKeyIdentifier.cs
- RtfToken.cs
- PrintDialogException.cs
- RegistryExceptionHelper.cs
- MetafileHeader.cs
- CommandDevice.cs
- EntityParameterCollection.cs
- FlowNode.cs
- DataTableNewRowEvent.cs
- SizeAnimationBase.cs
- QuadraticBezierSegment.cs
- NativeMethods.cs
- SqlDataSourceConfigureSortForm.cs
- TypeDelegator.cs
- SQLDecimalStorage.cs
- InputLangChangeRequestEvent.cs
- RemotingServices.cs
- LockCookie.cs
- PtsCache.cs
- ObjectHelper.cs
- UnlockCardRequest.cs
- IPipelineRuntime.cs
- MarkupExtensionParser.cs
- ReachFixedPageSerializerAsync.cs
- Metadata.cs
- SQLDecimal.cs
- ObfuscationAttribute.cs
- XmlSchemaSequence.cs
- TextProperties.cs
- BulletChrome.cs
- HtmlInputCheckBox.cs
- SocketAddress.cs
- StylesEditorDialog.cs
- GridViewColumn.cs
- NTAccount.cs
- MachineKeyValidationConverter.cs
- FileEnumerator.cs
- InternalMappingException.cs
- PackageRelationshipSelector.cs
- RenderCapability.cs
- ComboBoxAutomationPeer.cs
- SqlDataSource.cs
- MergeFailedEvent.cs
- Sql8ExpressionRewriter.cs
- InplaceBitmapMetadataWriter.cs
- EntityDataSourceView.cs
- CqlQuery.cs
- DataControlPagerLinkButton.cs
- CultureInfo.cs
- XmlIlGenerator.cs
- AsyncSerializedWorker.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- SystemInfo.cs
- TrustLevel.cs
- FixedTextBuilder.cs
- MergeFailedEvent.cs
- Canvas.cs
- FileEnumerator.cs
- GeneratedCodeAttribute.cs
- ColorIndependentAnimationStorage.cs
- SocketPermission.cs
- ObjectDataSourceDesigner.cs
- FileDialog_Vista_Interop.cs
- BookmarkScopeInfo.cs
- StringOutput.cs
- ModuleConfigurationInfo.cs
- FunctionUpdateCommand.cs
- DataGridViewLayoutData.cs
- RuleInfoComparer.cs
- Empty.cs
- NamedPermissionSet.cs
- HttpProfileGroupBase.cs
- ToolStripItemDataObject.cs
- StringUtil.cs
- ErrorStyle.cs
- TextFormatterHost.cs
- TimeSpanOrInfiniteConverter.cs
- XamlPathDataSerializer.cs
- DataListItemCollection.cs
- Pen.cs
- MethodAccessException.cs
- GatewayIPAddressInformationCollection.cs
- ExecutedRoutedEventArgs.cs
- EntityKey.cs
- ProcessInfo.cs
- StreamWithDictionary.cs
- HostedElements.cs
- DesignerActionVerbItem.cs
- ErrorHandler.cs
- Cursor.cs
- TypedTableHandler.cs
- SR.cs
- OutputCacheProviderCollection.cs
- SequenceDesigner.cs
- CodeEntryPointMethod.cs
- ToolBar.cs
- MetadataItemEmitter.cs
- ClientEventManager.cs