我用
printDialog.PrintVisual(document, "doc");
在用户单击WPF应用程序中的打印按钮时打开默认打印机的打印对话框。问题是我想知道用户是否点击了外部打印对话框中的“打印”按钮或“取消”按钮。我想根据用户操作显示相应的消息。
是否在WPF打印过程中实现了回调函数?
由于
答案 0 :(得分:1)
PrintDialog类上的ShowDialog方法返回一个布尔值,指示是否按下了打印按钮。
PrintDialog dialog = new PrintDialog();
if (dialog.ShowDialog())
printDialog.PrintVisual(document, "doc");
答案 1 :(得分:0)
<强> 1。创建PrintDialog
以下代码在WPF代码中创建PrintDialog。
// Create a PrintDialog
PrintDialog printDlg = new PrintDialog();
<强> 2。创建FlowDocument
FlowDocument对象用于创建FlowDocument。它有段落,运行,线,图像等项目。以下代码段创建FlowDocument并向文档添加一行文本。
// Create a FlowDocument dynamically.
FlowDocument doc = new FlowDocument(new Paragraph(new Run("Some text goes here")));
doc.Name = "FlowDoc";
第3。创建一个IDocumentPaginatorSource
第三步是从FlowDocument创建一个IDocumentPaginatorSource对象,该对象非常简单,如此处所列。您可以直接将FlowDocument转换为IDocumentPaginatorSource。
// Create IDocumentPaginatorSource from FlowDocument
IDocumentPaginatorSource idpSource = doc;
<强> 4。调用PrintDialog.PrintDocument方法
最后一步是调用PrintDialog.PrintDocument方法调用打印对话框,该对话框允许您选择打印机并将文档发送到打印机进行打印。 PrintDialog的PrintDocument方法接受一个DocumentPaginator对象,您可以从IDocumentPaginatorSource.DocumentPaginator属性获取该对象,如下面的代码所示:
// Call PrintDocument method to send document to printer
printDlg.PrintDocument(idpSource.DocumentPaginator, "Hello WPF Printing.");