PrintPreviewDialog 控件概述(Windows 窗体)

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

主要属性和方法

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

某些属性可以通过 PrintPreviewDialog 包含的 PrintPreviewControl 使用。 (您不必将此 PrintPreviewControl 添加到窗体;当您将对话框添加到窗体时,它将自动包含在 PrintPreviewDialog 中。通过 PrintPreviewControl 提供的属性示例包括 ColumnsRows 属性,这些属性决定了控件上水平和垂直显示的页数。 可以将 Columns 属性作为 Visual Basic 中的 PrintPreviewDialog1.PrintPreviewControl.Columns、Visual C# 中的 printPreviewDialog1.PrintPreviewControl.Columns 或 Visual C++ 中的 printPreviewDialog1->PrintPreviewControl->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 或更高版本上运行的应用,可以将以下开关添加到应用配置文件 <运行时> 部分中的 <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 控件的性能也不会提高。

另请参阅