Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Automation / Peers / TabItemAutomationPeer.cs / 1 / 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.Header is string)
{
return AccessText.RemoveAccessKeyMarker(result);
}
}
return result;
}
// Selected TabItem content is located under the TabControl style visual tree
///
protected override List GetChildrenCore()
{
// 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.IsSelected)
{
throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
}
}
}
}
// 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
- WorkflowApplicationCompletedException.cs
- ChangeConflicts.cs
- TraceSection.cs
- MsmqVerifier.cs
- sitestring.cs
- QueryOperationResponseOfT.cs
- XPathNavigatorKeyComparer.cs
- ListBoxItem.cs
- DCSafeHandle.cs
- OleDragDropHandler.cs
- PackagePart.cs
- figurelengthconverter.cs
- GridViewPageEventArgs.cs
- DocumentSequenceHighlightLayer.cs
- DataMisalignedException.cs
- Geometry.cs
- DataGridViewTextBoxCell.cs
- DockProviderWrapper.cs
- HttpModuleAction.cs
- DynamicActivity.cs
- NonVisualControlAttribute.cs
- CodeTypeDeclarationCollection.cs
- WsdlInspector.cs
- ProcessHostFactoryHelper.cs
- ThicknessAnimationUsingKeyFrames.cs
- WebEventCodes.cs
- UrlPropertyAttribute.cs
- hwndwrapper.cs
- CommandHelpers.cs
- URLAttribute.cs
- TreeViewItemAutomationPeer.cs
- TextBox.cs
- SmtpTransport.cs
- ByteAnimationUsingKeyFrames.cs
- FormsAuthenticationConfiguration.cs
- ConnectionStringsExpressionBuilder.cs
- Font.cs
- TextDecorationUnitValidation.cs
- ErasingStroke.cs
- PathNode.cs
- RectangleGeometry.cs
- Win32.cs
- MemberPathMap.cs
- DelegatedStream.cs
- DefaultDialogButtons.cs
- ToggleButton.cs
- CharConverter.cs
- NavigatorOutput.cs
- GuidTagList.cs
- SystemKeyConverter.cs
- ParentQuery.cs
- DesignOnlyAttribute.cs
- ConditionalExpression.cs
- WriterOutput.cs
- InputLanguageProfileNotifySink.cs
- XmlSchemaImporter.cs
- ReferenceEqualityComparer.cs
- XmlDataImplementation.cs
- LinqDataSourceUpdateEventArgs.cs
- DesignColumn.cs
- ChannelEndpointElementCollection.cs
- Attributes.cs
- Parallel.cs
- PlainXmlSerializer.cs
- ChainOfDependencies.cs
- BitStack.cs
- XmlSchemaAttributeGroupRef.cs
- JournalEntryStack.cs
- NotSupportedException.cs
- SizeConverter.cs
- UnsafeNativeMethodsMilCoreApi.cs
- CustomCredentialPolicy.cs
- ControlAdapter.cs
- RotationValidation.cs
- RowVisual.cs
- DebuggerAttributes.cs
- CodeDelegateInvokeExpression.cs
- InstancePersistenceCommand.cs
- MemberPath.cs
- DataGridViewCellConverter.cs
- DefaultAuthorizationContext.cs
- FactoryRecord.cs
- BamlResourceDeserializer.cs
- ExpressionBuilderCollection.cs
- KeyValueConfigurationElement.cs
- DependencyObjectPropertyDescriptor.cs
- SequentialWorkflowRootDesigner.cs
- PresentationAppDomainManager.cs
- Control.cs
- MediaPlayer.cs
- CompilerState.cs
- InvokeGenerator.cs
- ThicknessKeyFrameCollection.cs
- PerformanceCounterPermissionEntryCollection.cs
- ReflectionHelper.cs
- RotateTransform.cs
- ContentPathSegment.cs
- StylusLogic.cs
- DataTemplate.cs
- LicenseProviderAttribute.cs