Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Automation / Peers / TabItemAutomationPeer.cs / 1305600 / TabItemAutomationPeer.cs
using System; 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 TabItemAutomationPeer : SelectorItemAutomationPeer, ISelectionItemProvider { /// public TabItemAutomationPeer(object owner, TabControlAutomationPeer tabControlAutomationPeer) : base(owner, tabControlAutomationPeer) {} /// override protected string GetClassNameCore() { return "TabItem"; } /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.TabItem; } // Return the base without the AccessKey character /// override protected string GetNameCore() { string result = base.GetNameCore(); if (!string.IsNullOrEmpty(result)) { TabItem tabItem = GetWrapper() as TabItem; if ((tabItem != null) && (tabItem.Header is string)) { return AccessText.RemoveAccessKeyMarker(result); } } return result; } // Selected TabItem content is located under the TabControl style visual tree /// protected override ListGetChildrenCore() { // Call the base in case we have children in the header List headerChildren = base.GetChildrenCore(); // Only if the TabItem is selected we need to add its visual children TabItem tabItem = GetWrapper() as TabItem; if (tabItem != null && tabItem.IsSelected) { TabControl parentTabControl = ItemsControlAutomationPeer.Owner as TabControl; if (parentTabControl != null) { ContentPresenter contentHost = parentTabControl.SelectedContentPresenter; if (contentHost != null) { AutomationPeer contentHostPeer = new FrameworkElementAutomationPeer(contentHost); List contentChildren = contentHostPeer.GetChildren(); if (contentChildren != null) { if (headerChildren == null) headerChildren = contentChildren; else headerChildren.AddRange(contentChildren); } } } } return headerChildren; } void ISelectionItemProvider.RemoveFromSelection() { if (!IsEnabled()) throw new ElementNotEnabledException(); TabItem tabItem = GetWrapper() as TabItem; if ((tabItem != null) && tabItem.IsSelected) { throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed)); } } /// Realization for TabItem is tied to selection, bringing item into view for realizing the element /// as done for controls like ListBox doesn't make sense for TabControl. internal override void RealizeCore() { ISelectionItemProvider selectionItemProvider = this as ISelectionItemProvider; Selector parentSelector = (Selector)(ItemsControlAutomationPeer.Owner); if (parentSelector != null && selectionItemProvider != null) { if (parentSelector.CanSelectMultiple) selectionItemProvider.AddToSelection(); else selectionItemProvider.Select(); } } } } // 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
- Nodes.cs
- ActivityExecutorSurrogate.cs
- XmlSchemaFacet.cs
- CompilationPass2Task.cs
- DragDropManager.cs
- ConvertEvent.cs
- FileSystemInfo.cs
- ParseElement.cs
- ImageMapEventArgs.cs
- XmlSchemaInfo.cs
- ServiceModelSectionGroup.cs
- LayoutEditorPart.cs
- CachingHintValidation.cs
- FormsAuthenticationTicket.cs
- ResourceProperty.cs
- ErrorWebPart.cs
- GridViewSortEventArgs.cs
- FixedTextContainer.cs
- ExecutionProperties.cs
- SourceFileBuildProvider.cs
- SetStoryboardSpeedRatio.cs
- Soap12FormatExtensions.cs
- __ComObject.cs
- PanelStyle.cs
- WindowsAuthenticationEventArgs.cs
- ManagedIStream.cs
- InstanceKeyView.cs
- SHA512.cs
- HttpCachePolicyWrapper.cs
- ExecutionEngineException.cs
- SessionStateContainer.cs
- CollectionMarkupSerializer.cs
- DecoderExceptionFallback.cs
- TreeNodeClickEventArgs.cs
- ListManagerBindingsCollection.cs
- WindowsIPAddress.cs
- XmlWrappingReader.cs
- EntityTemplateUserControl.cs
- ConfigXmlText.cs
- SessionStateModule.cs
- TraceHandler.cs
- OleDbParameter.cs
- WindowsClientCredential.cs
- ApplicationTrust.cs
- PasswordTextContainer.cs
- SerializationFieldInfo.cs
- DefaultBindingPropertyAttribute.cs
- SymbolEqualComparer.cs
- DEREncoding.cs
- DataGridViewDataErrorEventArgs.cs
- RichTextBoxConstants.cs
- URLMembershipCondition.cs
- xmlglyphRunInfo.cs
- HierarchicalDataBoundControl.cs
- LocationSectionRecord.cs
- URLAttribute.cs
- EntityConnectionStringBuilderItem.cs
- GradientStopCollection.cs
- ArgumentNullException.cs
- AutomationAttributeInfo.cs
- ScrollPattern.cs
- MessageQueuePermission.cs
- InternalTransaction.cs
- FunctionNode.cs
- SoapObjectWriter.cs
- ContextMenuStrip.cs
- BitmapFrameDecode.cs
- RegexGroupCollection.cs
- CultureInfo.cs
- XslUrlEditor.cs
- StringSorter.cs
- ChangeBlockUndoRecord.cs
- RightNameExpirationInfoPair.cs
- VirtualPathUtility.cs
- SiteMapNodeItemEventArgs.cs
- BamlResourceDeserializer.cs
- SQLInt16.cs
- ThumbButtonInfoCollection.cs
- UnsafeNativeMethods.cs
- RightsManagementEncryptionTransform.cs
- ResponseStream.cs
- SqlRetyper.cs
- MouseBinding.cs
- StandardBindingElement.cs
- AQNBuilder.cs
- Drawing.cs
- CryptoStream.cs
- PixelFormatConverter.cs
- TreeNodeCollection.cs
- ConnectionStringSettingsCollection.cs
- SafeFileMapViewHandle.cs
- MultiBindingExpression.cs
- Stack.cs
- SystemResources.cs
- AnnotationObservableCollection.cs
- MemoryFailPoint.cs
- OleDbConnectionInternal.cs
- BaseComponentEditor.cs
- ValidationSummary.cs
- BackgroundWorker.cs