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
- Frame.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- BookmarkNameHelper.cs
- DbConnectionPool.cs
- TypeSystemHelpers.cs
- NativeMethods.cs
- ChannelSinkStacks.cs
- _DigestClient.cs
- XmlCharCheckingReader.cs
- DeploymentSectionCache.cs
- ExpressionBuilderContext.cs
- FixedTextPointer.cs
- System.Data_BID.cs
- TableAdapterManagerGenerator.cs
- ConnectionPointCookie.cs
- WinFormsUtils.cs
- StorageEntityContainerMapping.cs
- ResourceReferenceExpression.cs
- BitStack.cs
- SafePointer.cs
- XmlUrlResolver.cs
- FindCriteria.cs
- TableCell.cs
- RemoteEndpointMessageProperty.cs
- HighContrastHelper.cs
- RowsCopiedEventArgs.cs
- SingleAnimationBase.cs
- RegexInterpreter.cs
- COM2PictureConverter.cs
- COM2ExtendedTypeConverter.cs
- TdsValueSetter.cs
- StyleModeStack.cs
- XamlClipboardData.cs
- VisualStyleRenderer.cs
- SafeLibraryHandle.cs
- AutomationPeer.cs
- SafeNativeMethodsMilCoreApi.cs
- HTMLTagNameToTypeMapper.cs
- HttpModuleActionCollection.cs
- UserPreferenceChangedEventArgs.cs
- ReflectTypeDescriptionProvider.cs
- DataGridViewCellStyleConverter.cs
- WorkflowEventArgs.cs
- ComboBox.cs
- DesignerSerializerAttribute.cs
- XslTransform.cs
- TagPrefixCollection.cs
- Selector.cs
- DateTimeFormatInfo.cs
- StandardToolWindows.cs
- InputProcessorProfilesLoader.cs
- XmlValidatingReader.cs
- QilXmlReader.cs
- MultiByteCodec.cs
- ProviderException.cs
- NameValueConfigurationCollection.cs
- LabelEditEvent.cs
- ReaderContextStackData.cs
- SQlBooleanStorage.cs
- CqlGenerator.cs
- ArrayConverter.cs
- CachedPathData.cs
- XmlComplianceUtil.cs
- X509CertificateTokenFactoryCredential.cs
- ErrorFormatterPage.cs
- AssemblyResourceLoader.cs
- XmlSchemaNotation.cs
- CacheChildrenQuery.cs
- DesignerLoader.cs
- XmlAttributeCache.cs
- HtmlImage.cs
- ClientSponsor.cs
- ConditionCollection.cs
- OracleDataAdapter.cs
- MissingMethodException.cs
- FixedSOMLineRanges.cs
- AvTraceDetails.cs
- FileDataSourceCache.cs
- TripleDES.cs
- PageStatePersister.cs
- CompilationPass2TaskInternal.cs
- JsonStringDataContract.cs
- HttpRuntimeSection.cs
- TripleDESCryptoServiceProvider.cs
- AddInEnvironment.cs
- NotifyIcon.cs
- Transform.cs
- WpfXamlType.cs
- Hash.cs
- FixedHighlight.cs
- WpfXamlType.cs
- EntityDescriptor.cs
- ContractAdapter.cs
- Shape.cs
- CanonicalXml.cs
- SafeFileHandle.cs
- HttpWriter.cs
- SafeNativeMethods.cs
- XmlSchemaException.cs
- XmlDataSourceView.cs