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
- StateMachineExecutionState.cs
- TimeoutException.cs
- ColumnWidthChangedEvent.cs
- PrefixQName.cs
- RegexReplacement.cs
- TouchDevice.cs
- ActiveXContainer.cs
- _DisconnectOverlappedAsyncResult.cs
- TableCellCollection.cs
- DependencySource.cs
- Blend.cs
- FunctionDetailsReader.cs
- DataReaderContainer.cs
- CheckBoxBaseAdapter.cs
- ParameterDataSourceExpression.cs
- IisTraceListener.cs
- SubMenuStyle.cs
- DbCommandDefinition.cs
- SQLResource.cs
- transactioncontext.cs
- SqlBulkCopyColumnMapping.cs
- Popup.cs
- AesManaged.cs
- RegexReplacement.cs
- FieldInfo.cs
- DataShape.cs
- WebRequestModulesSection.cs
- DataGridViewAccessibleObject.cs
- ReferenceCountedObject.cs
- ExtendedTransformFactory.cs
- CapabilitiesSection.cs
- OdbcCommand.cs
- ConnectionOrientedTransportChannelFactory.cs
- MergeFilterQuery.cs
- FolderLevelBuildProviderCollection.cs
- DocumentViewer.cs
- XmlTextReader.cs
- AttributeData.cs
- DBCSCodePageEncoding.cs
- SwitchLevelAttribute.cs
- ProcessThreadDesigner.cs
- ButtonFieldBase.cs
- ConfigurationErrorsException.cs
- parserscommon.cs
- TemplatePartAttribute.cs
- SelectionChangedEventArgs.cs
- MenuAdapter.cs
- TrustSection.cs
- SafeNativeMethods.cs
- BrowsableAttribute.cs
- DynamicDocumentPaginator.cs
- ClientSponsor.cs
- ArrayTypeMismatchException.cs
- MetafileHeader.cs
- MenuItemAutomationPeer.cs
- BCLDebug.cs
- OwnerDrawPropertyBag.cs
- EdmComplexPropertyAttribute.cs
- DbProviderServices.cs
- TraceUtils.cs
- CharacterBuffer.cs
- dataprotectionpermissionattribute.cs
- EventLogWatcher.cs
- DiscoveryDocumentSearchPattern.cs
- PathFigure.cs
- UriParserTemplates.cs
- DbConnectionPoolIdentity.cs
- SettingsProperty.cs
- WinCategoryAttribute.cs
- StylusPointProperty.cs
- AppSettingsExpressionBuilder.cs
- CredentialCache.cs
- ProcessHostMapPath.cs
- DispatchChannelSink.cs
- DataGridViewColumnHeaderCell.cs
- ExpressionBindingCollection.cs
- DataSourceXmlTextReader.cs
- BezierSegment.cs
- _PooledStream.cs
- TextTreeUndo.cs
- SmiConnection.cs
- LineGeometry.cs
- ClickablePoint.cs
- _CacheStreams.cs
- PageEventArgs.cs
- ConditionChanges.cs
- TextStore.cs
- XmlSchemaRedefine.cs
- ToolStripButton.cs
- SQLBinary.cs
- WindowsFormsHost.cs
- PrimitiveList.cs
- DeviceFilterDictionary.cs
- DesignTimeParseData.cs
- QueryExtender.cs
- dataobject.cs
- Slider.cs
- oledbmetadatacollectionnames.cs
- IndexedString.cs
- SerializationFieldInfo.cs