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
- GrammarBuilderDictation.cs
- RefreshPropertiesAttribute.cs
- RNGCryptoServiceProvider.cs
- FileCodeGroup.cs
- UpdateException.cs
- XsdDuration.cs
- TcpHostedTransportConfiguration.cs
- XmlExpressionDumper.cs
- OneOf.cs
- FontStretchConverter.cs
- PolicyLevel.cs
- CodeMemberEvent.cs
- CollectionExtensions.cs
- DataGridViewColumnStateChangedEventArgs.cs
- RootBuilder.cs
- LinearGradientBrush.cs
- XmlSchemaType.cs
- SafeSecurityHandles.cs
- TextSearch.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- HostedBindingBehavior.cs
- MetadataArtifactLoader.cs
- DecoderBestFitFallback.cs
- MyContact.cs
- EDesignUtil.cs
- MediaElementAutomationPeer.cs
- SizeConverter.cs
- DirectoryObjectSecurity.cs
- TagPrefixInfo.cs
- HttpRuntime.cs
- MethodCallExpression.cs
- StaticResourceExtension.cs
- WmlMobileTextWriter.cs
- HTTPNotFoundHandler.cs
- DocumentStream.cs
- BindValidationContext.cs
- CompiledRegexRunnerFactory.cs
- designeractionbehavior.cs
- AsnEncodedData.cs
- DictionaryTraceRecord.cs
- TypefaceCollection.cs
- WindowsTokenRoleProvider.cs
- DocumentSequence.cs
- XamlTemplateSerializer.cs
- SystemWebSectionGroup.cs
- HMACRIPEMD160.cs
- ObjectDisposedException.cs
- RijndaelManagedTransform.cs
- ItemsChangedEventArgs.cs
- WebPartEditorCancelVerb.cs
- Timer.cs
- TextEditorTables.cs
- ConfigurationLockCollection.cs
- TableItemPattern.cs
- ACE.cs
- Rotation3DAnimationBase.cs
- WindowsScrollBar.cs
- UnknownWrapper.cs
- UmAlQuraCalendar.cs
- MatrixCamera.cs
- messageonlyhwndwrapper.cs
- DoWorkEventArgs.cs
- StorageMappingItemLoader.cs
- DataServiceHostFactory.cs
- ColorConvertedBitmap.cs
- WindowsButton.cs
- SingleTagSectionHandler.cs
- LinqDataSourceContextData.cs
- Panel.cs
- HttpCachePolicyElement.cs
- BinarySerializer.cs
- GlobalEventManager.cs
- SqlClientMetaDataCollectionNames.cs
- ExternalFile.cs
- Msec.cs
- AsymmetricKeyExchangeDeformatter.cs
- XmlChoiceIdentifierAttribute.cs
- EditingCommands.cs
- DataControlButton.cs
- FirstMatchCodeGroup.cs
- ResXResourceSet.cs
- DrawingImage.cs
- Token.cs
- SignatureDescription.cs
- Vector.cs
- DataTable.cs
- BindingExpression.cs
- BitmapEffectGeneralTransform.cs
- XmlAnyElementAttributes.cs
- MemoryStream.cs
- TextBlockAutomationPeer.cs
- HitTestResult.cs
- XmlSchemaExternal.cs
- ResourceDescriptionAttribute.cs
- UIElementAutomationPeer.cs
- BindingEditor.xaml.cs
- ScrollChrome.cs
- XmlSchemaSimpleTypeRestriction.cs
- InputDevice.cs
- RectValueSerializer.cs