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
- IIS7ConfigurationLoader.cs
- DesignUtil.cs
- CodeIdentifiers.cs
- ResXResourceReader.cs
- DocumentSequence.cs
- XsdCachingReader.cs
- CharConverter.cs
- ElementHost.cs
- ContainerAction.cs
- SafeCryptoHandles.cs
- ScaleTransform.cs
- OperatorExpressions.cs
- TextEndOfSegment.cs
- XmlIlVisitor.cs
- Delegate.cs
- WebSysDescriptionAttribute.cs
- EventBindingService.cs
- BaseParagraph.cs
- ChangeDirector.cs
- Vector3DAnimationBase.cs
- WebConfigurationHost.cs
- NullableIntSumAggregationOperator.cs
- ScriptRegistrationManager.cs
- MissingMethodException.cs
- ToolTipService.cs
- DictationGrammar.cs
- FontInfo.cs
- SuppressIldasmAttribute.cs
- SingleObjectCollection.cs
- PrinterSettings.cs
- SetUserPreferenceRequest.cs
- ClassDataContract.cs
- DiscoveryClientDocuments.cs
- ToolStripSeparatorRenderEventArgs.cs
- MessageBox.cs
- PageParserFilter.cs
- EmptyStringExpandableObjectConverter.cs
- DataRecordObjectView.cs
- ThreadPool.cs
- RegexCapture.cs
- SoapHeader.cs
- MessageBodyDescription.cs
- PixelFormats.cs
- ToolBar.cs
- PropertyGridEditorPart.cs
- GuidelineCollection.cs
- ItemsControlAutomationPeer.cs
- OleDbPermission.cs
- RichTextBoxConstants.cs
- StatusBarItemAutomationPeer.cs
- KeyInstance.cs
- LassoHelper.cs
- ContentType.cs
- StructuredType.cs
- XmlSchemaSet.cs
- Stack.cs
- PackagePartCollection.cs
- RadioButton.cs
- RectKeyFrameCollection.cs
- StateValidator.cs
- Mouse.cs
- OleAutBinder.cs
- InputReportEventArgs.cs
- ImageCodecInfo.cs
- Assert.cs
- RemoveStoryboard.cs
- UpdatePanelTrigger.cs
- NumericExpr.cs
- MultiViewDesigner.cs
- PermissionRequestEvidence.cs
- TrackingProfile.cs
- DbParameterHelper.cs
- TypeDependencyAttribute.cs
- FragmentQuery.cs
- XmlSchemaObjectTable.cs
- PowerStatus.cs
- StringSource.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ErrorWrapper.cs
- DataBindingList.cs
- ConstNode.cs
- MetafileHeaderEmf.cs
- TraceEventCache.cs
- PointCollectionValueSerializer.cs
- ResXResourceReader.cs
- CookieHandler.cs
- AuthStoreRoleProvider.cs
- Guid.cs
- Permission.cs
- EventLogPermissionEntry.cs
- StylusEventArgs.cs
- KeysConverter.cs
- ClientUtils.cs
- FreezableOperations.cs
- OrderedDictionary.cs
- ApplicationBuildProvider.cs
- TextParaLineResult.cs
- InvalidDataException.cs
- DependencyObjectProvider.cs
- DbProviderManifest.cs