Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Automation / Peers / DataGridRowAutomationPeer.cs / 1305600 / DataGridRowAutomationPeer.cs
using System; using System.Collections.Generic; using System.Windows.Automation.Provider; using System.Windows.Controls; using System.Windows.Controls.Primitives; using MS.Internal; namespace System.Windows.Automation.Peers { ////// AutomationPeer for DataGridRow /// public sealed class DataGridRowAutomationPeer : FrameworkElementAutomationPeer { #region Constructors ////// AutomationPeer for DataGridRow /// /// DataGridRow public DataGridRowAutomationPeer(DataGridRow owner) : base(owner) { if (owner == null) { throw new ArgumentNullException("owner"); } } #endregion #region AutomationPeer Overrides ////// Gets the control type for the element that is associated with the UI Automation peer. /// ///The control type. protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.DataItem; } ////// Called by GetClassName that gets a human readable name that, in addition to AutomationControlType, /// differentiates the control represented by this AutomationPeer. /// ///The string that contains the name. protected override string GetClassNameCore() { return Owner.GetType().Name; } /// protected override ListGetChildrenCore() { // see whether the DataGridRow uses the standard control template DataGridCellsPresenter cellsPresenter = OwningDataGridRow.CellsPresenter; if (cellsPresenter != null && cellsPresenter.ItemsHost != null) { // this is the normal case List children = new List (3); // Step 1: Add row header if exists AutomationPeer dataGridRowHeaderAutomationPeer = RowHeaderAutomationPeer; if (dataGridRowHeaderAutomationPeer != null) { children.Add(dataGridRowHeaderAutomationPeer); } // Step 2: Add all cells DataGridItemAutomationPeer itemPeer = this.EventsSource as DataGridItemAutomationPeer; if (itemPeer != null) { children.AddRange(itemPeer.GetCellItemPeers()); } // Step 3: Add DetailsPresenter last if exists AutomationPeer dataGridDetailsPresenterAutomationPeer = DetailsPresenterAutomationPeer; if (dataGridDetailsPresenterAutomationPeer != null) { children.Add(dataGridDetailsPresenterAutomationPeer); } return children; } else { // in the unusual case where the app uses a non-standard control template // for the DataGridRow, fall back to the base implementation return base.GetChildrenCore(); } } /// override protected bool IsOffscreenCore() { if (!Owner.IsVisible) return true; Rect boundingRect = CalculateVisibleBoundingRect(); return DoubleUtil.AreClose(boundingRect, Rect.Empty) || DoubleUtil.AreClose(boundingRect.Height, 0.0) || DoubleUtil.AreClose(boundingRect.Width, 0.0); } #endregion #region Private helpers internal AutomationPeer RowHeaderAutomationPeer { get { DataGridRowHeader dataGridRowHeader = OwningDataGridRow.RowHeader; if (dataGridRowHeader != null) { return CreatePeerForElement(dataGridRowHeader); } return null; } } private AutomationPeer DetailsPresenterAutomationPeer { get { DataGridDetailsPresenter dataGridDetailsPresenter = OwningDataGridRow.DetailsPresenter; if (dataGridDetailsPresenter != null) { return CreatePeerForElement(dataGridDetailsPresenter); } return null; } } private DataGridRow OwningDataGridRow { get { return (DataGridRow)Owner; } } #endregion } } // 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
- RemotingAttributes.cs
- Roles.cs
- validationstate.cs
- XmlSchemaObjectTable.cs
- TypeResolvingOptionsAttribute.cs
- UnknownWrapper.cs
- UserControlDesigner.cs
- hwndwrapper.cs
- PointConverter.cs
- DocumentEventArgs.cs
- ConfigurationException.cs
- TypeDescriptionProvider.cs
- ScaleTransform.cs
- TemplateControlBuildProvider.cs
- XPSSignatureDefinition.cs
- UIPropertyMetadata.cs
- WizardStepBase.cs
- Int32AnimationUsingKeyFrames.cs
- ContainerAction.cs
- MultipleViewPatternIdentifiers.cs
- BooleanFunctions.cs
- ValueTypeFixupInfo.cs
- LingerOption.cs
- ExpressionHelper.cs
- ReadOnlyDictionary.cs
- JoinGraph.cs
- Utils.cs
- SamlAudienceRestrictionCondition.cs
- WorkflowMarkupSerializationManager.cs
- ProtocolsConfiguration.cs
- SimpleMailWebEventProvider.cs
- SafeArrayRankMismatchException.cs
- COM2TypeInfoProcessor.cs
- TypeNameConverter.cs
- StylusLogic.cs
- CodeAttributeArgument.cs
- SqlDataSourceFilteringEventArgs.cs
- InvalidOperationException.cs
- MsmqReceiveHelper.cs
- HttpModulesSection.cs
- LayeredChannelListener.cs
- Win32SafeHandles.cs
- ThreadTrace.cs
- DefaultHttpHandler.cs
- InProcStateClientManager.cs
- SoapRpcMethodAttribute.cs
- KeyValueConfigurationCollection.cs
- Wildcard.cs
- TokenBasedSet.cs
- ImageIndexConverter.cs
- BookmarkScopeManager.cs
- Menu.cs
- ControlPaint.cs
- DataBindEngine.cs
- AppDomain.cs
- SessionStateItemCollection.cs
- HttpInputStream.cs
- X509Certificate2.cs
- XmlSchemaAttributeGroup.cs
- StrokeIntersection.cs
- UnsafeNativeMethods.cs
- ObjectSelectorEditor.cs
- Roles.cs
- SuppressMergeCheckAttribute.cs
- ConstraintEnumerator.cs
- DashStyle.cs
- HttpCapabilitiesBase.cs
- Int32Rect.cs
- PersonalizationStateQuery.cs
- FlowDocument.cs
- IncrementalCompileAnalyzer.cs
- UpdatePanelControlTrigger.cs
- PersonalizablePropertyEntry.cs
- D3DImage.cs
- ApplicationInfo.cs
- DelegateArgumentValue.cs
- SynchronizedRandom.cs
- UpDownEvent.cs
- ObjectComplexPropertyMapping.cs
- GridViewSelectEventArgs.cs
- WinCategoryAttribute.cs
- IsolatedStoragePermission.cs
- ILGenerator.cs
- TemplateKeyConverter.cs
- Label.cs
- SqlUserDefinedTypeAttribute.cs
- BoolExpr.cs
- ResourceDisplayNameAttribute.cs
- FastPropertyAccessor.cs
- StyleHelper.cs
- Argument.cs
- FileDialog.cs
- LabelExpression.cs
- PopupRoot.cs
- Base64Encoder.cs
- VScrollProperties.cs
- ContainerSelectorBehavior.cs
- TrayIconDesigner.cs
- MatrixTransform.cs
- BatchServiceHost.cs