Code:
/ 4.0 / 4.0 / 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 List GetChildrenCore()
{
// 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.
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 List GetChildrenCore()
{
// 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
- SettingsContext.cs
- Math.cs
- SchemaTableOptionalColumn.cs
- AccessibleObject.cs
- SR.cs
- InputMethodStateChangeEventArgs.cs
- OperatingSystem.cs
- GeneralTransform3DTo2DTo3D.cs
- PassportAuthentication.cs
- _FtpDataStream.cs
- mediaclock.cs
- RegistryKey.cs
- SettingsProperty.cs
- LicenseManager.cs
- Zone.cs
- SiteOfOriginPart.cs
- HighlightComponent.cs
- TraceHandler.cs
- RuleConditionDialog.cs
- XpsSerializationException.cs
- XmlDigitalSignatureProcessor.cs
- StorageAssociationTypeMapping.cs
- StylusPointPropertyInfoDefaults.cs
- Expander.cs
- __Error.cs
- ButtonColumn.cs
- MimeFormReflector.cs
- TextTreeRootNode.cs
- TextTreeObjectNode.cs
- DocumentGridContextMenu.cs
- Visual3DCollection.cs
- UnwrappedTypesXmlSerializerManager.cs
- ProxyManager.cs
- PointAnimationUsingKeyFrames.cs
- SqlCharStream.cs
- XmlSerializerAssemblyAttribute.cs
- _AutoWebProxyScriptWrapper.cs
- Attributes.cs
- DesignerAutoFormatCollection.cs
- PerfService.cs
- SqlResolver.cs
- SafeRightsManagementPubHandle.cs
- PolicyStatement.cs
- SapiRecoInterop.cs
- WindowsFormsDesignerOptionService.cs
- Latin1Encoding.cs
- SettingsPropertyWrongTypeException.cs
- SqlDataSourceFilteringEventArgs.cs
- MarkupCompilePass2.cs
- Context.cs
- DataBindEngine.cs
- JournalNavigationScope.cs
- PrintPreviewGraphics.cs
- GridViewColumnHeaderAutomationPeer.cs
- XmlSigningNodeWriter.cs
- RectValueSerializer.cs
- DataColumnCollection.cs
- SelectionUIHandler.cs
- StoreContentChangedEventArgs.cs
- ManagedWndProcTracker.cs
- EasingFunctionBase.cs
- Keywords.cs
- XmlStreamStore.cs
- SafeNativeMethods.cs
- StyleModeStack.cs
- TextBoxAutoCompleteSourceConverter.cs
- StoryFragments.cs
- ListViewEditEventArgs.cs
- AxisAngleRotation3D.cs
- LabelDesigner.cs
- Comparer.cs
- ValidateNames.cs
- XmlIlVisitor.cs
- SoapMessage.cs
- CompilerGlobalScopeAttribute.cs
- WmpBitmapDecoder.cs
- Context.cs
- SessionMode.cs
- ReachPageContentCollectionSerializer.cs
- HttpResponseHeader.cs
- SourceLineInfo.cs
- EncodingTable.cs
- StylusPoint.cs
- DataDocumentXPathNavigator.cs
- SocketCache.cs
- DropSource.cs
- DisposableCollectionWrapper.cs
- ReflectionHelper.cs
- Task.cs
- UnitySerializationHolder.cs
- compensatingcollection.cs
- PrintDialog.cs
- WindowsFormsHost.cs
- IdentifierElement.cs
- Stream.cs
- ResXDataNode.cs
- TextEditorTables.cs
- CommandBinding.cs
- CodeLabeledStatement.cs
- WebEvents.cs