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
- ExpandSegmentCollection.cs
- JavascriptXmlWriterWrapper.cs
- HierarchicalDataBoundControl.cs
- DefaultObjectMappingItemCollection.cs
- MdImport.cs
- Addressing.cs
- XhtmlTextWriter.cs
- SevenBitStream.cs
- ScrollBar.cs
- CurrencyWrapper.cs
- SystemGatewayIPAddressInformation.cs
- JsonFormatReaderGenerator.cs
- TextSerializer.cs
- NativeWindow.cs
- WebScriptEnablingBehavior.cs
- RepeaterDesigner.cs
- EnglishPluralizationService.cs
- SimpleApplicationHost.cs
- SevenBitStream.cs
- ResourceReferenceExpressionConverter.cs
- DefaultProxySection.cs
- SqlTransaction.cs
- CompilerCollection.cs
- WindowsStatusBar.cs
- ExportOptions.cs
- PrinterSettings.cs
- AppDomainManager.cs
- OrderPreservingPipeliningMergeHelper.cs
- WindowsButton.cs
- HuffCodec.cs
- QilStrConcatenator.cs
- Constraint.cs
- Popup.cs
- StatusBar.cs
- TagPrefixCollection.cs
- BuildProvidersCompiler.cs
- Scheduling.cs
- ButtonStandardAdapter.cs
- BitmapEffectDrawingContextState.cs
- ModelTreeEnumerator.cs
- TextTreeInsertUndoUnit.cs
- CompModSwitches.cs
- DataBindingCollection.cs
- ExtentCqlBlock.cs
- DbProviderSpecificTypePropertyAttribute.cs
- IntegerValidator.cs
- StrongNameHelpers.cs
- ComboBoxAutomationPeer.cs
- CapacityStreamGeometryContext.cs
- InputLanguageSource.cs
- ToolStripContentPanelRenderEventArgs.cs
- SoapMessage.cs
- UncommonField.cs
- ErrorHandler.cs
- ListBoxItemWrapperAutomationPeer.cs
- TextServicesDisplayAttribute.cs
- ViewManagerAttribute.cs
- GlyphingCache.cs
- DummyDataSource.cs
- LambdaCompiler.Generated.cs
- DbBuffer.cs
- CodeSubDirectory.cs
- PointCollectionValueSerializer.cs
- RepeaterItem.cs
- ContextStack.cs
- ScriptReferenceBase.cs
- TypedTableBaseExtensions.cs
- SettingsContext.cs
- DataSourceUtil.cs
- MSAAWinEventWrap.cs
- CheckBoxField.cs
- DynamicPropertyReader.cs
- PersonalizationEntry.cs
- HostedHttpRequestAsyncResult.cs
- X509CertificateValidator.cs
- MailAddress.cs
- PropertyToken.cs
- PowerEase.cs
- formatstringdialog.cs
- MultiView.cs
- XPathSelectionIterator.cs
- GenerateHelper.cs
- MaskedTextBoxDesignerActionList.cs
- CaseKeyBox.ViewModel.cs
- ReadOnlyDataSourceView.cs
- RegexStringValidatorAttribute.cs
- BrowserCapabilitiesCompiler.cs
- GPRECTF.cs
- ActiveXHost.cs
- VisualStyleElement.cs
- MetabaseReader.cs
- DataGridRelationshipRow.cs
- EntryWrittenEventArgs.cs
- RoleGroup.cs
- AdapterUtil.cs
- UInt16Storage.cs
- PeerCollaborationPermission.cs
- KeyInfo.cs
- WindowsIPAddress.cs
- DataGridPageChangedEventArgs.cs