-一个对话框,用于在打印文档时显示打印设置参数供用户选择并确认。通过该控件,用户可以选择打印机、打印的范围、打印的份数、打印质量等。
常用属性 | 描述 |
---|---|
CurrentPageEnabled | 用于获取或设置一个值,该指示打印当前页的选项是否可用。 |
MaxPage | 用于获取或设置页范围内允许的最大页码。表示可在“ 打印 ”对话框的页范围中使用的最高页码。 |
MinPage | 用于获取或设置页范围中允许的最小页码。表示可在“打印”对话框的页面范围中使用的最小页码。 |
PageRange | 用于获取或设置当 PageRangeSelection 设置为 UserPages 时要打印的页面范围。 |
PageRangeSelection | 用于获取或设置此 PrintDialog 实例的 PageRangeSelection。可选值:AllPages(所有页)、CurrentPage(当前页)、SelectedPages(选定页)、UserPages(用户指定的范围页)。 |
PrintableAreaHeight | 用于获取页面的可打印区域的高度。 |
PrintableAreaWidth | 用于获取页面的可打印区域的宽度。 |
PrintQueue | 用于获取或设置一个 PrintQueue,该字段表示所选的打印机。 |
PrintTicket | 用于获取或设置当用户针对当前打印作业单击“打印”时 PrintDialog 使用的 PrintTicket。PrintTicket包含了打印设置的详细信息。 |
SelectedPagesEnabled | 用于获取或设置指示是否启用打印所选页的选项的值。如果为true,则允许用户选择要打印的页面范围;如果为false,则不允许用户选择要打印的页面范围。 |
UserPageRangeEnabled | 用于获取或设置一个值,该值指示“打印”对话框的用户是否可以使用一个选项指定要打印的页范围。为true表示可以使用选中指定打印范围。 |
<Grid>
<StackPanel Orientation="Vertical" VerticalAlignment="Top" Margin="20,20,20,0">
<!--添加打开基本打印弹窗按钮-->
<Button Content="打开基本的PrintDialog对话框" Background="Green" Foreground="White" Height="50" Width="250" FontSize="16" Padding="10,0" Click="Button_Click"></Button>
<!--添加有相关设置的打印弹窗按钮-->
<Button Content="打开有设置的PrintDialog对话框" Background="Blue" Margin="0,20,0,0" Foreground="White" Height="50" Width="250" FontSize="16" Padding="10,0" Click="Button_Click_1"></Button>
<!--设置获取到打印区域的高度和宽度显示Label-->
<Label x:Name="MyLabel" HorizontalAlignment="Center" FontSize="16" Foreground="Red" Margin="0,20,0,0"></Label>
</StackPanel>
</Grid>
using System.Printing;
using System.Windows;
using System.Windows.Controls;
namespace WpfCommonControls
{
/// <summary>
/// PrintDialog.xaml 的交互逻辑
/// </summary>
public partial class PrintDialogWindow : Window
{
public PrintDialogWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
//打开最基本的打印对话框
PrintDialog printDialog = new PrintDialog();
//显示
printDialog.ShowDialog();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
//有相关设置
//打开最基本的打印对话框
PrintDialog printDialog = new PrintDialog();
// 设置所有页
printDialog.PageRangeSelection = PageRangeSelection.AllPages;
// 设置是否启用用户页面范围
printDialog.UserPageRangeEnabled = true;
// 设置是否启用当前页面
printDialog.CurrentPageEnabled = true;
// 设置是否启用选定页面
printDialog.SelectedPagesEnabled = true;
//显示
bool? print = printDialog.ShowDialog();
if (print == true)
{
//点击了打印按钮
//获取打印区域宽度和高度
double printableAreaWidth = printDialog.PrintableAreaWidth;
double printableAreaHeight = printDialog.PrintableAreaHeight;
//显示
MyLabel.Content = $"当前打印区域宽度:{printableAreaWidth},高度:{printableAreaHeight}";
// 获取打印队列
PrintQueue printQueue = printDialog.PrintQueue;
// 获取打印票证
PrintTicket printTicket = printDialog.PrintTicket;
// 获取页面范围选择
PageRangeSelection pageRangeSelection = printDialog.PageRangeSelection;
}
else
{
// 点击了取消按钮
MessageBox.Show("取消了打印");
}
}
}
}
公众号“点滴分享技术猿”