// Token: 0x06006F08 RID: 28424 RVA: 0x001FE508 File Offset: 0x001FC708 private static void FindDocumentPageViews(Visual root, List <DocumentPageView> pageViews) { Invariant.Assert(root != null); Invariant.Assert(pageViews != null); if (root is DocumentPageView) { pageViews.Add((DocumentPageView)root); return; } int internalVisualChildrenCount = root.InternalVisualChildrenCount; for (int i = 0; i < internalVisualChildrenCount; i++) { Visual visual = root.InternalGetVisualChild(i); FrameworkElement frameworkElement = visual as FrameworkElement; if (frameworkElement != null) { if (frameworkElement.TemplatedParent != null) { if (frameworkElement is DocumentPageView) { pageViews.Add(frameworkElement as DocumentPageView); } else { ContentHostHelper.FindDocumentPageViews(frameworkElement, pageViews); } } } else { ContentHostHelper.FindDocumentPageViews(visual, pageViews); } } }
// Token: 0x06006F07 RID: 28423 RVA: 0x001FE3FC File Offset: 0x001FC5FC private static IContentHost GetICHFromFlowDocument(TextElement contentElement, FlowDocument flowDocument) { IContentHost result = null; ITextView textView = flowDocument.StructuralCache.TextContainer.TextView; if (textView != null) { if (textView.RenderScope is FlowDocumentView) { if (VisualTreeHelper.GetChildrenCount(textView.RenderScope) > 0) { result = (VisualTreeHelper.GetChild(textView.RenderScope, 0) as IContentHost); } } else if (textView.RenderScope is FrameworkElement) { List <DocumentPageView> list = new List <DocumentPageView>(); ContentHostHelper.FindDocumentPageViews(textView.RenderScope, list); for (int i = 0; i < list.Count; i++) { if (list[i].DocumentPage is FlowDocumentPage) { textView = (ITextView)((IServiceProvider)list[i].DocumentPage).GetService(typeof(ITextView)); if (textView != null && textView.IsValid && (textView.Contains(contentElement.ContentStart) || textView.Contains(contentElement.ContentEnd))) { result = (list[i].DocumentPage.Visual as IContentHost); } } } } } return(result); }