PrintPreviewDialog 控件概述(Windows 窗体)

Windows 窗体 PrintPreviewDialog 控件是一个预配置的对话框,用于显示 PrintDocument 在打印时的显示方式。 在基于 Windows 的应用程序中使用它来作为一种替代配置自己对话框的简单解决方案。 该控件包含用于打印、放大、显示一页或多页以及关闭对话框的按钮。

关键属性和方法

此控件的关键属性是 Document,用于设置要预览的文档。 文档必须是 PrintDocument 对象。 若要显示对话框,必须调用其 ShowDialog 方法。 抗锯齿可以使文本更流畅地显示,但它也会减慢显示速度;若要使用它,请将 UseAntiAlias 属性设置为 true

某些属性可以通过 PrintPreviewDialog 包含的 PrintPreviewControl 使用。 (无需将此 PrintPreviewControl 添加到窗体;当你将对话框添加到窗体时,它会自动包含在 PrintPreviewDialog 中。)通过 PrintPreviewControl 可以使用的属性示例包括 ColumnsRows 属性,用于确定在控件上水平和垂直显示的页数。 你可以像在 Visual Basic 中访问 PrintPreviewDialog1.PrintPreviewControl.Columns、在 Visual C# 中访问 printPreviewDialog1.PrintPreviewControl.Columns 或者在 Visual C++ 中访问 printPreviewDialog1->PrintPreviewControl->Columns 一样访问 Columns 属性。

PrintPreviewDialog 性能

在以下情况下,PrintPreviewDialog 控件初始化的速度非常慢:

  • 使用了网络打印机。
  • 修改了此打印机的用户首选项,例如双工设置。

对于在 .NET Framework 4.5.2 上运行的应用,可以将以下键添加到配置文件的 <appSettings> 部分,以提高 PrintPreviewDialog 控件初始化的性能:

<appSettings>
   <add key="EnablePrintPreviewOptimization" value="true" />
</appSettings>

如果 EnablePrintPreviewOptimization 键设置为任何其他的值,或如果此键不存在,将不会应用优化。 如果应用程序在 .NET Framework 4.6 或更高版本上运行,则此键不起作用。

对于在 .NET Framework 4.6 或更高版本上运行的应用,可以将以下开关添加到应用配置文件的 <runtime> 部分的 <AppContextSwitchOverrides> 元素中:

<runtime >
   <!-- AppContextSwitchOverrides values are in the form of 'key1=true|false;key2=true|false -->
   <AppContextSwitchOverrides value = "Switch.System.Drawing.Printing.OptimizePrintPreview=true" />
</runtime >

如果此开关不存在或设置为任何其他的值,将不会应用优化。

如果使用 QueryPageSettings 事件修改打印机设置,PrintPreviewDialog 控件的性能将不会提高,即使设置了优化配置开关也是如此。

另请参阅