我有一个 treeView 从文本文件返回我的文本搜索结果。
<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 显示为红色。我将它们分成三个文本框。
treeView 位于不同的 UserControl 中 - 我将其放入 SearchView (UC) 中。
现在我想在这棵树上打印所有结果。我更喜欢在打印文档时强调搜索结果为红色。
看起来像这样。
我尝试了PrintDialog.PrintVisual。问题是我无法到达树或搜索表达式,因为 ViewModel 不知道视图等。
虽然我在下面这段代码后面的代码中尝试了它,但它只打印他看到的内容,而不是整个树的结果。
PrintDialog dialog = new PrintDialog();
if (dialog.ShowDialog() != true)
return;
dialog.PrintVisual(SearchResultTree, "The Search Result Tree");
我也尝试了FlowDocument的选项:
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 帮助!