如何:调用打印对话框

更新: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 的多个 WriteWriteAsync 方法之一。有关此内容的更多信息,请参见如何:以编程方式打印 XPS 文件打印 XPS 文档

请参见

概念

Windows Presentation Foundation 中的文档

打印概述

参考

PrintDialog

其他资源

打印示例

Microsoft XPS Document Writer