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
- ListenerSessionConnection.cs
- PixelFormat.cs
- TopClause.cs
- FastEncoderWindow.cs
- StylesEditorDialog.cs
- TextRunCache.cs
- Graphics.cs
- CompilerWrapper.cs
- RequestQueryProcessor.cs
- CurrentTimeZone.cs
- SQLGuidStorage.cs
- ParagraphVisual.cs
- HttpValueCollection.cs
- Double.cs
- CompilationSection.cs
- RightNameExpirationInfoPair.cs
- Activator.cs
- OleDbConnection.cs
- ConditionCollection.cs
- TemplatePartAttribute.cs
- UdpDuplexChannel.cs
- Ipv6Element.cs
- ReferencedCollectionType.cs
- WebPartZoneBaseDesigner.cs
- RectIndependentAnimationStorage.cs
- PropertyBuilder.cs
- ProfileServiceManager.cs
- ConfigurationValidatorAttribute.cs
- MergeLocalizationDirectives.cs
- OdbcException.cs
- DescendantOverDescendantQuery.cs
- XmlC14NWriter.cs
- AlignmentYValidation.cs
- InternalConfirm.cs
- SRGSCompiler.cs
- TextBoxBase.cs
- DSASignatureFormatter.cs
- RuleProcessor.cs
- RichTextBoxConstants.cs
- ScriptResourceHandler.cs
- xml.cs
- ZipQueryOperator.cs
- TaskFileService.cs
- BrushConverter.cs
- ImmutablePropertyDescriptorGridEntry.cs
- DataContractSerializerMessageContractImporter.cs
- Slider.cs
- BaseInfoTable.cs
- MarkupExtensionParser.cs
- DrawingContextWalker.cs
- BindUriHelper.cs
- ObjectHelper.cs
- ChannelSinkStacks.cs
- AnnotationAuthorChangedEventArgs.cs
- DynamicDocumentPaginator.cs
- ViewPort3D.cs
- DataTableReader.cs
- QualifiedCellIdBoolean.cs
- Interlocked.cs
- NullableDecimalAverageAggregationOperator.cs
- VariableDesigner.xaml.cs
- FormattedText.cs
- TextEmbeddedObject.cs
- FormsAuthenticationCredentials.cs
- PartialArray.cs
- PathData.cs
- IISUnsafeMethods.cs
- followingquery.cs
- InputScope.cs
- DivideByZeroException.cs
- DataTableMappingCollection.cs
- WebMethodAttribute.cs
- DataGridItemCollection.cs
- SmiRequestExecutor.cs
- ILGenerator.cs
- IxmlLineInfo.cs
- UdpTransportSettings.cs
- CommentAction.cs
- PersistNameAttribute.cs
- SymbolPair.cs
- HwndStylusInputProvider.cs
- SrgsElementFactoryCompiler.cs
- DependsOnAttribute.cs
- DiscriminatorMap.cs
- UndoEngine.cs
- sqlcontext.cs
- Compiler.cs
- PassportAuthenticationModule.cs
- XsdBuildProvider.cs
- ExeContext.cs
- TagNameToTypeMapper.cs
- AssemblySettingAttributes.cs
- GenericTypeParameterBuilder.cs
- TextAnchor.cs
- EntitySetDataBindingList.cs
- StateWorkerRequest.cs
- CheckedListBox.cs
- WebBrowsableAttribute.cs
- TrackingServices.cs
- PrefixQName.cs