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
- SQLRoleProvider.cs
- UnaryExpression.cs
- AspCompat.cs
- ReflectionUtil.cs
- PropertyChangeTracker.cs
- ScrollBar.cs
- FormViewUpdatedEventArgs.cs
- MenuAutomationPeer.cs
- mactripleDES.cs
- WebServiceReceive.cs
- HttpWebRequestElement.cs
- DataChangedEventManager.cs
- MulticastIPAddressInformationCollection.cs
- linebase.cs
- RepeaterCommandEventArgs.cs
- WindowsAuthenticationModule.cs
- SBCSCodePageEncoding.cs
- SqlVersion.cs
- Double.cs
- PolyBezierSegmentFigureLogic.cs
- CodeTypeParameterCollection.cs
- EntityContainerEmitter.cs
- WhileDesigner.xaml.cs
- __ConsoleStream.cs
- ListViewItem.cs
- SimpleWebHandlerParser.cs
- Thread.cs
- Version.cs
- ContextMenuStripActionList.cs
- Lasso.cs
- ImageMetadata.cs
- NativeRightsManagementAPIsStructures.cs
- RadioButtonFlatAdapter.cs
- nulltextnavigator.cs
- hwndwrapper.cs
- TextDecorationCollection.cs
- PointLight.cs
- DataPagerFieldCommandEventArgs.cs
- DocumentEventArgs.cs
- SignedXml.cs
- IsolatedStorageFilePermission.cs
- ObjectStateEntryDbDataRecord.cs
- UnmanagedMarshal.cs
- HttpDictionary.cs
- FontFaceLayoutInfo.cs
- CompressionTransform.cs
- sapiproxy.cs
- Slider.cs
- XPathParser.cs
- IsolatedStorageFile.cs
- BamlVersionHeader.cs
- LineGeometry.cs
- PlatformCulture.cs
- SqlTrackingService.cs
- DataGridViewButtonCell.cs
- CodeExporter.cs
- XmlDictionary.cs
- AnimationTimeline.cs
- SafeNativeMethods.cs
- ListViewCommandEventArgs.cs
- WebBrowser.cs
- IdentifierCreationService.cs
- Menu.cs
- Utilities.cs
- IBuiltInEvidence.cs
- XmlValueConverter.cs
- PointConverter.cs
- FreeFormDesigner.cs
- SqlDataSourceQueryConverter.cs
- MappingException.cs
- DataSourceSelectArguments.cs
- TimeEnumHelper.cs
- basevalidator.cs
- ScriptRef.cs
- BufferAllocator.cs
- TabPage.cs
- DefaultValidator.cs
- ElasticEase.cs
- DateTimeConverter2.cs
- AuthorizationRuleCollection.cs
- ProgressChangedEventArgs.cs
- ResourceExpressionBuilder.cs
- Frame.cs
- UIElement3D.cs
- PictureBox.cs
- PictureBox.cs
- QueryCacheKey.cs
- PageSettings.cs
- MD5.cs
- CustomSignedXml.cs
- IndexingContentUnit.cs
- TextSelectionHighlightLayer.cs
- DataRelation.cs
- LocatorManager.cs
- NamedObject.cs
- CoreSwitches.cs
- HtmlTableRowCollection.cs
- IisTraceWebEventProvider.cs
- WebResponse.cs
- InstanceLockTracking.cs