Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / 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.
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
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- sqlstateclientmanager.cs
- TransformerConfigurationWizardBase.cs
- METAHEADER.cs
- PathFigureCollectionValueSerializer.cs
- TextPattern.cs
- Int64AnimationUsingKeyFrames.cs
- EditorPartChrome.cs
- CompilerGeneratedAttribute.cs
- Container.cs
- TextDecorationCollectionConverter.cs
- CodeSnippetStatement.cs
- MembershipSection.cs
- XmlSchemaSimpleTypeRestriction.cs
- ServiceBusyException.cs
- EventSetterHandlerConverter.cs
- _OverlappedAsyncResult.cs
- CDSCollectionETWBCLProvider.cs
- Completion.cs
- XPathDocumentBuilder.cs
- ListViewSelectEventArgs.cs
- ComEventsInfo.cs
- XpsFilter.cs
- WebPartManagerInternals.cs
- SqlRowUpdatedEvent.cs
- RelationalExpressions.cs
- SubqueryTrackingVisitor.cs
- EraserBehavior.cs
- WebBrowserEvent.cs
- CmsInterop.cs
- TreeNodeConverter.cs
- MenuItem.cs
- NetPipeSectionData.cs
- ToolStripMenuItemDesigner.cs
- IntMinMaxAggregationOperator.cs
- LocatorBase.cs
- ObjectAnimationBase.cs
- XMLDiffLoader.cs
- SmtpCommands.cs
- TaskCanceledException.cs
- PageWrapper.cs
- TdsParameterSetter.cs
- ArglessEventHandlerProxy.cs
- XPathQilFactory.cs
- TreeNodeCollection.cs
- StringValidatorAttribute.cs
- Timeline.cs
- ClientOptions.cs
- BufferedGraphics.cs
- MemberDescriptor.cs
- HttpRawResponse.cs
- ContentTypeSettingDispatchMessageFormatter.cs
- MergeLocalizationDirectives.cs
- IndentedWriter.cs
- SendKeys.cs
- CompositeDataBoundControl.cs
- DashStyles.cs
- ListSourceHelper.cs
- HandlerFactoryWrapper.cs
- HwndHostAutomationPeer.cs
- MaterialGroup.cs
- ClassicBorderDecorator.cs
- FlowDocumentScrollViewer.cs
- ToolStripItemCollection.cs
- StringDictionaryEditor.cs
- PerformanceCountersElement.cs
- DataGridRowClipboardEventArgs.cs
- LinkedList.cs
- CompressStream.cs
- ViewUtilities.cs
- IsolatedStorage.cs
- HttpServerVarsCollection.cs
- PropertyChangeTracker.cs
- BodyGlyph.cs
- SqlFunctionAttribute.cs
- _CookieModule.cs
- TraceData.cs
- KeyPressEvent.cs
- _SSPISessionCache.cs
- ObjectItemCollection.cs
- Parameter.cs
- ConnectionsZone.cs
- Module.cs
- QueryExpr.cs
- SplitContainer.cs
- Timer.cs
- CheckBox.cs
- LogExtent.cs
- DragStartedEventArgs.cs
- WaitForChangedResult.cs
- EventRoute.cs
- OracleFactory.cs
- BaseServiceProvider.cs
- TraceXPathNavigator.cs
- ResourceContainer.cs
- SqlDataReader.cs
- HtmlLinkAdapter.cs
- ModelFunctionTypeElement.cs
- ProgressPage.cs
- DataServiceQuery.cs