Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Automation / Peers / TableAutomationPeer.cs / 1 / TableAutomationPeer.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: TableAutomationPeer.cs // // Description: Automation peer for Table // //--------------------------------------------------------------------------- using System.Windows.Automation.Provider; // IRawElementProviderSimple using System.Windows.Documents; namespace System.Windows.Automation.Peers { /// public class TableAutomationPeer : TextElementAutomationPeer, IGridProvider { ////// Constructor. /// /// Owner of the AutomationPeer. public TableAutomationPeer(Table owner) : base(owner) { _rowCount = GetRowCount(); _columnCount = GetColumnCount(); } ////// public override object GetPattern(PatternInterface patternInterface) { if (patternInterface == PatternInterface.Grid) { return this; } return null; } ////// /// protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Table; } ////// /// protected override string GetClassNameCore() { return "Table"; } ////// /// protected override bool IsControlElementCore() { return true; } ////// /// protected override bool IsContentElementCore() { return true; } ////// /// Raises property changed events in response to structure changes. /// internal void OnStructureInvalidated() { int rowCount = GetRowCount(); if (rowCount != _rowCount) { RaisePropertyChangedEvent(GridPatternIdentifiers.RowCountProperty, _rowCount, rowCount); _rowCount = rowCount; } int columnCount = GetColumnCount(); if (columnCount != _columnCount) { RaisePropertyChangedEvent(GridPatternIdentifiers.ColumnCountProperty, _columnCount, columnCount); _columnCount = columnCount; } } ////// Returns the number of rows. /// private int GetRowCount() { int rows = 0; foreach (TableRowGroup group in ((Table)Owner).RowGroups) { rows += group.Rows.Count; } return rows; } ////// Returns the number of columns. /// private int GetColumnCount() { return ((Table)Owner).ColumnCount; } private int _rowCount; private int _columnCount; //------------------------------------------------------------------- // // IGridProvider Members // //------------------------------------------------------------------- #region IGridProvider Members ////// Returns the provider for the element that is located at the row and /// column location requested by the client. /// IRawElementProviderSimple IGridProvider.GetItem(int row, int column) { if (row < 0 || row >= ((IGridProvider)this).RowCount) { throw new ArgumentOutOfRangeException("row"); } if (column < 0 || column >= ((IGridProvider)this).ColumnCount) { throw new ArgumentOutOfRangeException("column"); } int currentRow = 0; Table table = (Table)Owner; foreach (TableRowGroup group in table.RowGroups) { if (currentRow + group.Rows.Count < row) { currentRow += group.Rows.Count; } else { foreach (TableRow tableRow in group.Rows) { if (currentRow == row) { foreach (TableCell cell in tableRow.Cells) { if (cell.ColumnIndex <= column && cell.ColumnIndex + cell.ColumnSpan > column) { return ProviderFromPeer(CreatePeerForElement(cell)); } } // check spanned cells foreach (TableCell cell in tableRow.SpannedCells) { if (cell.ColumnIndex <= column && cell.ColumnIndex + cell.ColumnSpan > column) { return ProviderFromPeer(CreatePeerForElement(cell)); } } } else { currentRow++; } } } } return null; } ////// Returns the number of rows in the grid at the time this was requested. /// int IGridProvider.RowCount { get { return _rowCount; } } ////// Returns the number of columns in the grid at the time this was requested. /// int IGridProvider.ColumnCount { get { return _columnCount; } } #endregion IGridProvider Members } } // 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
- DateTimeEditor.cs
- ChunkedMemoryStream.cs
- Baml6ConstructorInfo.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- XmlnsPrefixAttribute.cs
- HandlerBase.cs
- HTTPRemotingHandler.cs
- Attributes.cs
- peersecuritysettings.cs
- _FtpControlStream.cs
- ImageList.cs
- BufferAllocator.cs
- ProfileBuildProvider.cs
- SignatureDescription.cs
- MatrixAnimationUsingKeyFrames.cs
- X509CertificateClaimSet.cs
- FirewallWrapper.cs
- Mouse.cs
- DependencyPropertyAttribute.cs
- CheckPair.cs
- Timeline.cs
- StreamingContext.cs
- ScaleTransform.cs
- RequestChannelBinder.cs
- DataAdapter.cs
- _Events.cs
- PenLineCapValidation.cs
- TemplatePagerField.cs
- ListViewInsertEventArgs.cs
- DispatcherExceptionEventArgs.cs
- BrushConverter.cs
- ListenDesigner.cs
- RepeatEnumerable.cs
- SplineKeyFrames.cs
- FileEnumerator.cs
- StickyNoteContentControl.cs
- FrameDimension.cs
- AspNetSynchronizationContext.cs
- FieldDescriptor.cs
- BitmapCache.cs
- StyleCollection.cs
- ButtonFieldBase.cs
- HyperLinkColumn.cs
- XmlDownloadManager.cs
- DataGridViewColumnStateChangedEventArgs.cs
- BinaryQueryOperator.cs
- RtfControls.cs
- GridEntryCollection.cs
- ExternalException.cs
- DynamicDiscoSearcher.cs
- Vector3DCollectionValueSerializer.cs
- ImageInfo.cs
- SpecialFolderEnumConverter.cs
- AdapterSwitches.cs
- SendSecurityHeader.cs
- NumberSubstitution.cs
- IdnElement.cs
- BooleanAnimationUsingKeyFrames.cs
- CustomErrorCollection.cs
- FloaterParaClient.cs
- PoisonMessageException.cs
- HtmlTernaryTree.cs
- TraceListener.cs
- DocumentStatusResources.cs
- ThemeableAttribute.cs
- MultiByteCodec.cs
- Viewport2DVisual3D.cs
- MaskPropertyEditor.cs
- BaseCodePageEncoding.cs
- MeasureData.cs
- Wildcard.cs
- LoginDesignerUtil.cs
- DataSpaceManager.cs
- EventLogEntryCollection.cs
- XmlSchemaDocumentation.cs
- CreateWorkflowOwnerCommand.cs
- ToolBarDesigner.cs
- ViewStateChangedEventArgs.cs
- InstanceDataCollection.cs
- SeekableReadStream.cs
- TextRangeAdaptor.cs
- PaperSource.cs
- SQLDateTime.cs
- MsmqIntegrationInputChannel.cs
- SafeCloseHandleCritical.cs
- BitmapMetadataBlob.cs
- BooleanToVisibilityConverter.cs
- CustomPopupPlacement.cs
- SecureUICommand.cs
- SQLChars.cs
- DefaultParameterValueAttribute.cs
- MarkupProperty.cs
- InitializationEventAttribute.cs
- SqlDataSourceStatusEventArgs.cs
- SessionStateSection.cs
- ForEachAction.cs
- FormViewCommandEventArgs.cs
- RecommendedAsConfigurableAttribute.cs
- RadioButton.cs
- ConstNode.cs