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
- ExpressionLink.cs
- AutomationPeer.cs
- RuntimeHelpers.cs
- OrderedDictionaryStateHelper.cs
- RelationshipConverter.cs
- Point3DCollection.cs
- storepermissionattribute.cs
- Matrix3D.cs
- _OSSOCK.cs
- FontInfo.cs
- EncoderReplacementFallback.cs
- WorkflowIdleBehavior.cs
- RenamedEventArgs.cs
- HeaderedItemsControl.cs
- Accessors.cs
- PrintDialog.cs
- Style.cs
- _AutoWebProxyScriptWrapper.cs
- FigureHelper.cs
- SByteStorage.cs
- HtmlTextArea.cs
- MetaTableHelper.cs
- RangeValuePatternIdentifiers.cs
- ExpressionUtilities.cs
- WebPartManager.cs
- MissingMethodException.cs
- LoginName.cs
- XhtmlTextWriter.cs
- TripleDES.cs
- SizeAnimationBase.cs
- SqlNode.cs
- DataTablePropertyDescriptor.cs
- SchemaEntity.cs
- HttpContext.cs
- NodeFunctions.cs
- MembershipPasswordException.cs
- SqlDataSourceCommandEventArgs.cs
- BehaviorEditorPart.cs
- IdentityReference.cs
- DeclaredTypeElementCollection.cs
- ValuePatternIdentifiers.cs
- XmlSchemaAttributeGroup.cs
- Geometry.cs
- EncryptedReference.cs
- FileLogRecordHeader.cs
- SqlDataSourceConnectionPanel.cs
- XmlChoiceIdentifierAttribute.cs
- ComponentChangingEvent.cs
- AssemblyBuilder.cs
- PropertyGeneratedEventArgs.cs
- Variable.cs
- ReadOnlyPermissionSet.cs
- XmlSchemaAnyAttribute.cs
- InteropBitmapSource.cs
- RelativeSource.cs
- ThicknessAnimation.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- HitTestWithGeometryDrawingContextWalker.cs
- CapabilitiesState.cs
- PolicyImporterElementCollection.cs
- TextEditorThreadLocalStore.cs
- WebPartZone.cs
- CommandExpr.cs
- Queue.cs
- SplashScreen.cs
- HttpModuleActionCollection.cs
- NativeRecognizer.cs
- WebControlsSection.cs
- EntityClientCacheEntry.cs
- TypefaceCollection.cs
- DelimitedListTraceListener.cs
- NativeMethodsCLR.cs
- GuidelineCollection.cs
- RenderDataDrawingContext.cs
- ViewManagerAttribute.cs
- QilParameter.cs
- ObjectDisposedException.cs
- IISMapPath.cs
- TemplateBaseAction.cs
- TextContainerChangedEventArgs.cs
- BitmapEffectvisualstate.cs
- FormsAuthenticationTicket.cs
- Drawing.cs
- FromReply.cs
- XmlSchemaRedefine.cs
- MemberDescriptor.cs
- SqlGatherProducedAliases.cs
- mongolianshape.cs
- StatusBarPanel.cs
- DataGridView.cs
- OperationDescription.cs
- CachedRequestParams.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- TemplatePropertyEntry.cs
- WCFBuildProvider.cs
- CollectionBase.cs
- AtomicFile.cs
- ProofTokenCryptoHandle.cs
- _ListenerRequestStream.cs
- Visual3D.cs