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
- VirtualDirectoryMappingCollection.cs
- HtmlInputFile.cs
- PropertiesTab.cs
- UIHelper.cs
- QuaternionAnimationBase.cs
- NetDataContractSerializer.cs
- TextTreeRootNode.cs
- EdgeModeValidation.cs
- MessageSecurityProtocolFactory.cs
- AddInStore.cs
- PropertyTab.cs
- WebBrowserNavigatingEventHandler.cs
- ToolStripButton.cs
- DelayedRegex.cs
- HorizontalAlignConverter.cs
- JobStaple.cs
- UpDownEvent.cs
- DisposableCollectionWrapper.cs
- DataGridViewCellFormattingEventArgs.cs
- ContentFilePart.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- DeferrableContent.cs
- ArgIterator.cs
- SchemaMerger.cs
- TypeConverter.cs
- FrameworkElement.cs
- MatcherBuilder.cs
- DynamicValidatorEventArgs.cs
- ClientSponsor.cs
- SourceLineInfo.cs
- EnvelopedPkcs7.cs
- CompiledRegexRunnerFactory.cs
- NativeMethods.cs
- _NtlmClient.cs
- HMACSHA256.cs
- SqlRowUpdatedEvent.cs
- CodeCompileUnit.cs
- ProxyFragment.cs
- TypeLoadException.cs
- DataObjectAttribute.cs
- TransactionManager.cs
- SemanticAnalyzer.cs
- PriorityBinding.cs
- Scene3D.cs
- WindowsAltTab.cs
- TraceContextEventArgs.cs
- InputBindingCollection.cs
- Delegate.cs
- ChannelManager.cs
- ExternalFile.cs
- PenContexts.cs
- TypeInitializationException.cs
- CompilerTypeWithParams.cs
- CompilationLock.cs
- BinHexEncoding.cs
- UnaryNode.cs
- BitSet.cs
- MailAddressCollection.cs
- WSTrustFeb2005.cs
- LookupNode.cs
- Panel.cs
- ContextMenuAutomationPeer.cs
- FormsIdentity.cs
- ScriptingScriptResourceHandlerSection.cs
- FrameworkContextData.cs
- WinInetCache.cs
- SwitchElementsCollection.cs
- RegexTree.cs
- HMACSHA1.cs
- HttpRuntime.cs
- ResXResourceWriter.cs
- NavigationProperty.cs
- SchemaImporterExtensionElement.cs
- EventRouteFactory.cs
- MethodAccessException.cs
- ToolStripSystemRenderer.cs
- UserValidatedEventArgs.cs
- X509RecipientCertificateClientElement.cs
- NullNotAllowedCollection.cs
- EntityModelSchemaGenerator.cs
- PropertyDescriptorGridEntry.cs
- MdiWindowListItemConverter.cs
- IResourceProvider.cs
- HighlightComponent.cs
- QilTernary.cs
- JsonXmlDataContract.cs
- BooleanFunctions.cs
- GlyphInfoList.cs
- UniformGrid.cs
- ZipIORawDataFileBlock.cs
- WriteFileContext.cs
- cookiecontainer.cs
- StylusPointDescription.cs
- serverconfig.cs
- Margins.cs
- BoundPropertyEntry.cs
- ExpandSegmentCollection.cs
- MenuBindingsEditor.cs
- WinHttpWebProxyFinder.cs
- xmlglyphRunInfo.cs