如何:调用打印对话框
更新:2007 年 11 月
若要提供从应用程序打印的功能,您只需创建并打开 PrintDialog 对象。
示例
PrintDialog 控件为 UI、配置和 XPS 作业提交提供单入口点。此控件易于使用,并且可以通过使用可扩展应用程序标记语言 (XAML) 标记或代码进行实例化。下面的示例演示如何在代码中实例化和打开控件并从中进行打印,以及如何确保对话框为用户提供设置特定打印页数范围的选项。此示例代码假定在 C: 驱动器的根目录下有一个名为 FixedDocumentSequence.xps 的文件。在您从 PrintDialog 示例下载完整示例之后,可以在 \Content 子文件夹下找到此文件。
private void InvokePrint(object sender, RoutedEventArgs e)
{
// Create the print dialog object and set options
PrintDialog pDialog = new PrintDialog();
pDialog.PageRangeSelection = PageRangeSelection.AllPages;
pDialog.UserPageRangeEnabled = true;
// Display the dialog. This returns true if the user presses the Print button.
Nullable<Boolean> print = pDialog.ShowDialog();
if (print == true)
{
XpsDocument xpsDocument = new XpsDocument("C:\\FixedDocumentSequence.xps", FileAccess.ReadWrite);
FixedDocumentSequence fixedDocSeq = xpsDocument.GetFixedDocumentSequence();
pDialog.PrintDocument(fixedDocSeq.DocumentPaginator, "Test print job");
}
}
一旦打开此对话框,用户即可从其计算机上安装的打印机中进行选择。他们还可以选择 Microsoft XPS Document Writer来创建 XML 纸张规范 (XPS) 文件而不是执行打印作业。
说明: |
---|
请不要将本主题所讨论的 WPF 的 System.Windows.Controls.PrintDialog 控件与 Windows 窗体的 System.Windows.Forms.PrintDialog 组件混淆。 |
严格来说,可以使用 PrintDocument 方法而根本无需打开此对话框。因此,可以将控件作为看不见的打印组件使用。但由于性能原因,最好使用 AddJob 方法或 XpsDocumentWriter 的多个 Write 和 WriteAsync 方法之一。有关此内容的更多信息,请参见如何:以编程方式打印 XPS 文件和打印 XPS 文档。
请参见
概念
Windows Presentation Foundation 中的文档