我有一个treeView从文本文件返回我的文本搜索结果。使用MVVM在WPF中打印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是在一个不同的用户控件 - 我把它放到SearchView(UC)中。
现在我想打印全部这棵树上的结果。我更喜欢用红色打印文档,强调搜索结果。
看起来像this。
我试过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帮助!