/// <summary>Gets the collection of child elements of the <see cref="T:System.Windows.Controls.FlowDocumentScrollViewer" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.FlowDocumentScrollViewerAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetChildren" />.</summary> /// <returns>The collection of child elements.</returns> // Token: 0x06002690 RID: 9872 RVA: 0x000B76CC File Offset: 0x000B58CC protected override List <AutomationPeer> GetChildrenCore() { List <AutomationPeer> list = base.GetChildrenCore(); if (!(base.Owner is IFlowDocumentViewer)) { FlowDocument document = ((FlowDocumentScrollViewer)base.Owner).Document; if (document != null) { AutomationPeer automationPeer = ContentElementAutomationPeer.CreatePeerForElement(document); if (this._documentPeer != automationPeer) { if (this._documentPeer != null) { this._documentPeer.OnDisconnected(); } this._documentPeer = (automationPeer as DocumentAutomationPeer); } if (automationPeer != null) { if (list == null) { list = new List <AutomationPeer>(); } list.Add(automationPeer); } } } return(list); }
/// <summary> /// <see cref="AutomationPeer.GetChildrenCore"/> /// </summary> /// <remarks> /// AutomationPeer associated with FlowDocumentScrollViewer returns an AutomationPeer /// for hosted Document and for elements in the style. /// </remarks> protected override List <AutomationPeer> GetChildrenCore() { // Get children for all elements in the style. List <AutomationPeer> children = base.GetChildrenCore(); // Add AutomationPeer associated with the document. // Make it the first child of the collection. FlowDocument document = ((FlowDocumentReader)Owner).Document; if (document != null) { AutomationPeer documentPeer = ContentElementAutomationPeer.CreatePeerForElement(document); if (_documentPeer != documentPeer) { if (_documentPeer != null) { _documentPeer.OnDisconnected(); } _documentPeer = documentPeer as DocumentAutomationPeer; } if (documentPeer != null) { if (children == null) { children = new List <AutomationPeer>(); } children.Add(documentPeer); } } return(children); }
/// <summary>Retrieves the UI Automation provider for the specified cell.</summary> /// <param name="row"> The ordinal number of the row of interest.</param> /// <param name="column"> The ordinal number of the column of interest.</param> /// <returns>The UI Automation provider for the specified cell.</returns> // Token: 0x06002821 RID: 10273 RVA: 0x000BB9EC File Offset: 0x000B9BEC 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 num = 0; Table table = (Table)base.Owner; foreach (TableRowGroup tableRowGroup in ((IEnumerable <TableRowGroup>)table.RowGroups)) { if (num + tableRowGroup.Rows.Count < row) { num += tableRowGroup.Rows.Count; } else { foreach (TableRow tableRow in ((IEnumerable <TableRow>)tableRowGroup.Rows)) { if (num == row) { foreach (TableCell tableCell in ((IEnumerable <TableCell>)tableRow.Cells)) { if (tableCell.ColumnIndex <= column && tableCell.ColumnIndex + tableCell.ColumnSpan > column) { return(base.ProviderFromPeer(ContentElementAutomationPeer.CreatePeerForElement(tableCell))); } } foreach (TableCell tableCell2 in tableRow.SpannedCells) { if (tableCell2.ColumnIndex <= column && tableCell2.ColumnIndex + tableCell2.ColumnSpan > column) { return(base.ProviderFromPeer(ContentElementAutomationPeer.CreatePeerForElement(tableCell2))); } } } else { num++; } } } } return(null); }
/// <summary> /// Retrieves AutomationPeer for the document. /// </summary> /// <returns></returns> private AutomationPeer GetDocumentAutomationPeer() { AutomationPeer documentPeer = null; IDocumentPaginatorSource document = ((DocumentViewerBase)Owner).Document; if (document != null) { if (document is UIElement) { documentPeer = UIElementAutomationPeer.CreatePeerForElement((UIElement)document); } else if (document is ContentElement) { documentPeer = ContentElementAutomationPeer.CreatePeerForElement((ContentElement)document); } } return(documentPeer); }
/// <summary> /// <see cref="AutomationPeer.GetChildrenCore"/> /// </summary> /// <remarks> /// AutomationPeer associated with FlowDocumentScrollViewer returns an AutomationPeer /// for hosted Document and for elements in the style. /// </remarks> protected override List <AutomationPeer> GetChildrenCore() { // Get children for all elements in the style. List <AutomationPeer> children = base.GetChildrenCore(); // If the owner is IFlowDocumentViewer, it means that it is embedded inside // FlowDocumentReaer. In this case DocumentAutumationPeer is already exposed. // Hence there is no need to add it to children collection. if (!(Owner is IFlowDocumentViewer)) { // Add AutomationPeer associated with the document. // Make it the first child of the collection. FlowDocument document = ((FlowDocumentScrollViewer)Owner).Document; if (document != null) { AutomationPeer documentPeer = ContentElementAutomationPeer.CreatePeerForElement(document); if (_documentPeer != documentPeer) { if (_documentPeer != null) { _documentPeer.OnDisconnected(); } _documentPeer = documentPeer as DocumentAutomationPeer; } if (documentPeer != null) { if (children == null) { children = new List <AutomationPeer>(); } children.Add(documentPeer); } } } return(children); }