打印WPF网格被裁剪

时间:2013-04-21 18:03:22

标签: wpf

我找到了打印Wpf网格内容的功能,但裁剪了打印件。 谁知道为什么?

功能:

private void PrintTest()
        {
            FlowDocument document;
            Window window;
            CreateWindowToPrint(out document, out window);    
            PrintDialog printDialog = new PrintDialog();   
            window.Show();
            IDocumentPaginatorSource dps = document;
            if (printDialog.ShowDialog() == true)
            {
                printDialog.PrintDocument(dps.DocumentPaginator, "test");
            }
        }

 private void CreateWindowToPrint(out FlowDocument document, out
 Window window)
         {
             document = new FlowDocument {  };
             var test = new PrintedTest() { DataContext = this.DataContext };
             document.Blocks.Add(new BlockUIContainer { Child = test });
             window = new Window {Content = document, Visibility =       System.Windows.Visibility.Hidden };
         }

UserControl PrintedTest包含我的网格。

1 个答案:

答案 0 :(得分:1)

我对WPF打印的经验并不多,但我想我会尝试一下。 我可以重现你的问题,到目前为止我无法解决它。 但在我的研究中,我找到了一种替代方案,它可以更简单地打印网格:

        var printDialog = new PrintDialog();
        var result = printDialog.ShowDialog();
        if (result.HasValue && result.Value)
        {
            var testControl = new PrintedTest() { DataContext = this.DataContext };
            printDialog.PrintVisual(testControl, "My WPF printing a DataGrid");
        }

您可以直接发送网格,而不是发送PrintTest。

相关问题