我有一個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幫助!