我有一个树视图来从文本文件返回文本搜索结果。
<TreeView ItemsSource="{Binding FirstGeneration}"
...>
<TreeView.ItemContainerStyle.../>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal" FlowDirection="LeftToRight">
<TextBlock Text="{Binding PreExp}" />
<TextBlock Text="{Binding Exp}"
FontStyle="{Binding FontStyle}"
Foreground="{Binding Color}" />
<TextBlock Text="{Binding PostExp}" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
为了以树的形式获取结果(因为我们从 C++ 项目中获取结果作为列表),我们创建一个逻辑树并将 exp 显示为红色。我将它们分成三个文本框。
树视图位于不同的用户控件中 - 我将其放入搜索视图(UC)中。
现在我想打印all这棵树上的结果。我更喜欢打印文档时用红色强调搜索结果。
看起来像this https://i.stack.imgur.com/XNUCP.png.
我尝试过打印对话框.PrintVisual。问题是我无法到达树或搜索表达式,因为 ViewModel 不知道视图等。
尽管我在下面的代码后面的代码中尝试了它,但它只打印他看到的内容,而不是整个树结果。
PrintDialog dialog = new PrintDialog();
if (dialog.ShowDialog() != true)
return;
dialog.PrintVisual(SearchResultTree, "The Search Result Tree");
我也尝试了该选项流程文件:
FlowDocument doc = new FlowDocument();
foreach (SearchObjectViewModel item in tv.Items)
doc.Blocks.Add(new Paragraph(new Run(item.PreExp+item.Exp+item.PostExp)));
pd.PrintDocument(((IDocumentPaginatorSource)doc).DocumentPaginator,exp);
10x 4 帮助!