我找到了打印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包含我的网格。
答案 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。