4

TreeView から印刷しようとしていた前の質問で、親ビューに移動し、検索結果を WPFview に表示するための TreeView を含む UserControl を持っています。印刷しようとして、FlowDocumentScrollViewer で囲みました以下のコード:

ビュー.xaml

<FlowDocumentScrollViewer x:Name="flow" Margin="10" BorderThickness="0">
<FlowDocument>
    <Section>
        <BlockUIContainer>
            <my:SearchTreeView Content="{Binding Stvm}"/>
        </BlockUIContainer>
    </Section>
</FlowDocument>

view.xaml.cs

 Printing.PrintDoc( flow.Document, txtSearch.Text + " - Result");

静的印刷.cs

public static void PrintDoc(System.Windows.Documents.FlowDocument fd, string description)
    {
        double h, w, cw;            
        h = fd.PageHeight ;
        w = fd.PageWidth ;
        cw = fd.ColumnWidth;

        PrintDialog pd = new PrintDialog();
        //pd.PageRangeSelection = PageRangeSelection.AllPages;
        //pd.UserPageRangeEnabled = true;

        if (pd.ShowDialog() != true || fd == null) return;

        fd.PageHeight = pd.PrintableAreaHeight;
        fd.PageWidth = pd.PrintableAreaWidth;
        fd.PagePadding = new Thickness(50);
        fd.ColumnGap = 0;
        fd.ColumnWidth = pd.PrintableAreaWidth;

        System.Windows.Documents.IDocumentPaginatorSource dps  = fd;
      //  int c = dps.DocumentPaginator.PageCount;//0

        pd.PrintDocument(dps.DocumentPaginator, description);

        fd.PageHeight = h;
        fd.PageWidth = w;
        fd.PagePadding = new Thickness(0);
        fd.ColumnWidth = cw;
    }

同様の質問のほとんどすべての例を試しましたが、得られた最高のものは、このような結果の最初のページだけです.. ;(

私はWPF MVVMパターンを使用しています。これは正しいコントロールですか?それとも、他の WPF コントロールを使用する必要がありますか?

4

1 に答える 1