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
- Pair.cs
- UrlPath.cs
- RtfToXamlLexer.cs
- EventMappingSettings.cs
- SqlClientFactory.cs
- CorrelationManager.cs
- DefaultClaimSet.cs
- MultipartContentParser.cs
- cookiecontainer.cs
- FileLoadException.cs
- LoginCancelEventArgs.cs
- ObjectItemCollection.cs
- ActiveXHost.cs
- InfiniteTimeSpanConverter.cs
- DrawingGroup.cs
- COM2FontConverter.cs
- SEHException.cs
- SamlAttribute.cs
- X509CertificateCollection.cs
- PartialCachingAttribute.cs
- HtmlInputSubmit.cs
- HealthMonitoringSection.cs
- Color.cs
- PersistenceException.cs
- Setter.cs
- ProfileParameter.cs
- MetadataHelper.cs
- DbConnectionInternal.cs
- InternalUserCancelledException.cs
- InternalDispatchObject.cs
- XmlComment.cs
- ToolStripSettings.cs
- DataFieldConverter.cs
- DocobjHost.cs
- WinEventTracker.cs
- DataListCommandEventArgs.cs
- XmlILAnnotation.cs
- RegistryConfigurationProvider.cs
- GeometryValueSerializer.cs
- OleStrCAMarshaler.cs
- LayoutDump.cs
- ReadOnlyTernaryTree.cs
- TreeViewItem.cs
- KeyConverter.cs
- EventSinkHelperWriter.cs
- SerialErrors.cs
- XmlSchemaParticle.cs
- LinqDataSourceView.cs
- LinqDataSource.cs
- View.cs
- UnSafeCharBuffer.cs
- SafeMILHandleMemoryPressure.cs
- SystemInfo.cs
- ServiceXNameTypeConverter.cs
- GeneralTransform3DCollection.cs
- SqlMethodTransformer.cs
- SortExpressionBuilder.cs
- XmlSchemaObject.cs
- ListDictionaryInternal.cs
- FtpWebRequest.cs
- Trace.cs
- SettingsPropertyWrongTypeException.cs
- ExpressionEditorAttribute.cs
- ListItemsPage.cs
- EventLevel.cs
- FaultBookmark.cs
- PartialList.cs
- DateTimeConverter.cs
- XamlBrushSerializer.cs
- TreeViewItemAutomationPeer.cs
- PingOptions.cs
- Throw.cs
- WebBaseEventKeyComparer.cs
- SmtpMail.cs
- HtmlEmptyTagControlBuilder.cs
- SimpleRecyclingCache.cs
- Matrix.cs
- ContextMenuService.cs
- Geometry.cs
- Oci.cs
- TraceProvider.cs
- BuildDependencySet.cs
- DataRelation.cs
- InvalidEnumArgumentException.cs
- HttpPostServerProtocol.cs
- DataGridViewColumnConverter.cs
- HtmlLiteralTextAdapter.cs
- WindowsRichEdit.cs
- GreenMethods.cs
- ContextMarshalException.cs
- DesignerHelpers.cs
- FragmentQueryKB.cs
- SymbolUsageManager.cs
- AutomationPattern.cs
- Expressions.cs
- DocumentCollection.cs
- ValueProviderWrapper.cs
- TypeConverterHelper.cs
- AssemblyCollection.cs
- KnownBoxes.cs