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
- SspiNegotiationTokenAuthenticator.cs
- DrawingDrawingContext.cs
- ListDataHelper.cs
- DataErrorValidationRule.cs
- OrderingExpression.cs
- FirstMatchCodeGroup.cs
- HelpInfo.cs
- XmlSchemaDatatype.cs
- TrackingQuery.cs
- Bidi.cs
- UIntPtr.cs
- StateMachine.cs
- ArcSegment.cs
- BinaryCommonClasses.cs
- UnicastIPAddressInformationCollection.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- SQLInt32.cs
- Deserializer.cs
- TimerElapsedEvenArgs.cs
- SQLInt32Storage.cs
- VisualState.cs
- BinaryParser.cs
- WinFormsUtils.cs
- RecognizerInfo.cs
- BezierSegment.cs
- GrammarBuilderDictation.cs
- MobileUserControl.cs
- TreeViewImageGenerator.cs
- Brush.cs
- DatatypeImplementation.cs
- SqlNotificationEventArgs.cs
- TextShapeableCharacters.cs
- AuthorizationRuleCollection.cs
- KeyGesture.cs
- FontStretch.cs
- ScriptReferenceBase.cs
- UniqueConstraint.cs
- PerformanceCounterManager.cs
- SqlBulkCopyColumnMapping.cs
- ListSortDescriptionCollection.cs
- StringSorter.cs
- IsolatedStoragePermission.cs
- securitymgrsite.cs
- ProcessInfo.cs
- DnsElement.cs
- ReaderContextStackData.cs
- EntityContainerEntitySetDefiningQuery.cs
- XmlUTF8TextWriter.cs
- BitmapVisualManager.cs
- TemplateEditingService.cs
- ServiceAuthorizationManager.cs
- ExtentCqlBlock.cs
- ExcCanonicalXml.cs
- UrlMappingCollection.cs
- DynamicExpression.cs
- EdmTypeAttribute.cs
- StrokeNodeOperations2.cs
- MediaPlayer.cs
- DataServiceKeyAttribute.cs
- XmlAttributeCollection.cs
- NullEntityWrapper.cs
- NavigationWindow.cs
- SqlUserDefinedAggregateAttribute.cs
- DispatcherTimer.cs
- HttpFileCollection.cs
- StylusButtonCollection.cs
- PersonalizableAttribute.cs
- ComboBoxAutomationPeer.cs
- RightsManagementEncryptionTransform.cs
- MembershipSection.cs
- TaskFileService.cs
- PolyBezierSegment.cs
- WebServiceErrorEvent.cs
- SerialErrors.cs
- QilVisitor.cs
- Memoizer.cs
- TransactionProtocol.cs
- ClientOptions.cs
- ForEachAction.cs
- DataSourceXmlElementAttribute.cs
- SafeCertificateContext.cs
- LockRecursionException.cs
- DataMisalignedException.cs
- CheckBox.cs
- ResourceProperty.cs
- DataBoundControlAdapter.cs
- BorderGapMaskConverter.cs
- XmlKeywords.cs
- CommandHelper.cs
- PerformanceCountersElement.cs
- BooleanAnimationBase.cs
- Attachment.cs
- DefaultPropertyAttribute.cs
- SetIterators.cs
- GridView.cs
- NativeMethods.cs
- WebPartDisplayMode.cs
- TypefaceMap.cs
- PixelShader.cs
- PrintDialogException.cs