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
- GCHandleCookieTable.cs
- SupportingTokenListenerFactory.cs
- KnowledgeBase.cs
- ManagedWndProcTracker.cs
- HttpListenerPrefixCollection.cs
- WinInetCache.cs
- MsmqUri.cs
- TemplatedMailWebEventProvider.cs
- AsyncResult.cs
- DynamicObjectAccessor.cs
- TargetException.cs
- BasicHttpSecurity.cs
- PersistChildrenAttribute.cs
- FilterElement.cs
- StoreContentChangedEventArgs.cs
- WebDescriptionAttribute.cs
- JulianCalendar.cs
- X509CertificateChain.cs
- ObjectItemCollection.cs
- CDSsyncETWBCLProvider.cs
- ArcSegment.cs
- GeometryConverter.cs
- ToolboxCategoryItems.cs
- ObjectMaterializedEventArgs.cs
- SchemaEntity.cs
- SqlAliasesReferenced.cs
- propertyentry.cs
- OutputScopeManager.cs
- AutoResetEvent.cs
- SEHException.cs
- HTMLTagNameToTypeMapper.cs
- SafeProcessHandle.cs
- MgmtConfigurationRecord.cs
- CountdownEvent.cs
- ellipse.cs
- ConnectionStringSettingsCollection.cs
- HitTestWithPointDrawingContextWalker.cs
- Request.cs
- DataGridRowsPresenter.cs
- XmlReader.cs
- DataSourceNameHandler.cs
- WindowsGraphics2.cs
- DisableDpiAwarenessAttribute.cs
- KeyGestureConverter.cs
- QueryStringParameter.cs
- JsonDeserializer.cs
- SecUtil.cs
- DataGridViewAccessibleObject.cs
- SystemSounds.cs
- IList.cs
- TemplateBindingExtension.cs
- UxThemeWrapper.cs
- InvokeWebServiceDesigner.cs
- BitmapEffectInput.cs
- IndentedTextWriter.cs
- SqlFormatter.cs
- EditorPart.cs
- HttpHandler.cs
- SerializationInfoEnumerator.cs
- CalendarDateRange.cs
- TextBlock.cs
- ThreadTrace.cs
- GraphicsPath.cs
- SiteMapDataSourceView.cs
- ServiceModelConfigurationSection.cs
- OTFRasterizer.cs
- MissingSatelliteAssemblyException.cs
- PictureBox.cs
- RequestChannelBinder.cs
- StylusTip.cs
- ToReply.cs
- TriggerCollection.cs
- RoleManagerSection.cs
- ResumeStoryboard.cs
- ScrollItemProviderWrapper.cs
- WindowsToolbarItemAsMenuItem.cs
- TypeInfo.cs
- ValueQuery.cs
- EDesignUtil.cs
- MailMessage.cs
- SafeRightsManagementPubHandle.cs
- FormView.cs
- MulticastNotSupportedException.cs
- HostedTransportConfigurationBase.cs
- WindowsTooltip.cs
- CannotUnloadAppDomainException.cs
- CookieParameter.cs
- ConditionBrowserDialog.cs
- _AutoWebProxyScriptWrapper.cs
- CollectionCodeDomSerializer.cs
- TypeBinaryExpression.cs
- StringSorter.cs
- XsdDuration.cs
- UriTemplate.cs
- MdImport.cs
- WebPartEditVerb.cs
- ProxyRpc.cs
- Operator.cs
- MenuItemStyle.cs
- Point3DAnimationBase.cs