了解WPF控件:PrintDialog常用属性与用法(八)

掌握WPF控件:熟练常用属性(八)

PrintDialog

-一个对话框,用于在打印文档时显示打印设置参数供用户选择并确认。通过该控件,用户可以选择打印机、打印的范围、打印的份数、打印质量等。

常用属性描述
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("取消了打印");}}}
}

基本打印弹窗
开启了自定义设置
PrintDialog

公众号“点滴分享技术猿

关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/644296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

制作编写使用说明书:在结构、风格与内容方面需要注意什么?

如今&#xff0c;一个清晰、简洁、易于理解的使用说明书不仅能够帮助用户正确地使用产品&#xff0c;还能提升用户体验并树立品牌形象。而制作编写一份优质的使用说明书需要我们在结构、风格与内容三个方面下功夫。那么在制作编写使用说明书时需要注意哪些关键要素呢&#xff1…

【JavaWeb】日程管理系统 项目搭建 第二期

文章目录 一、数据库准备二、导入依赖 与 JDBC工具类三、pojo包处理四、daodao包工具类 五、service六、controllerservlet 基类 反射 七、加密工具类 MD5八、页面文件九、业务代码9.1 注册业务处理9.2 登录业务处理 总结 一、数据库准备 创建数据库&#xff1a; SET NAMES …

骨传导耳机综评:透视南卡、韶音和墨觉三大品牌的性能与特点

在当前的蓝牙音频设备领域中&#xff0c;骨传导蓝牙运动耳机以其出色的安全特性和舒适的体验&#xff0c;受到了健身爱好者们的广泛好评。这类耳机不同于我们常见的入耳式耳机&#xff0c;它的工作方式是直接通过振动将声音传递到用户的耳骨中&#xff0c;这样既可以享受音乐&a…

【nowcoder】链表的回文结构

牛客题目链接 链表的回文结构 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {} };*/ #include <cstdlib> // 建议大伙自己对照我的代码画下图&#xff0c;假设A链表是&#xff1a;1 2 3 2 1 class PalindromeList { publi…

【学网攻】 第(7)节 -- 生成树配置

文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4)节 -- 交换机划分Vlan【学网攻】 第(5)节 -- Cisco VTP的使用【学网攻】 第(6)节 -- 三层交换机实现VLAN间路由 前言 网络已经成为…

vscode 如何指定启动文件?

launch.json 里面可以指定&#xff0c;launch.json 在打开文件夹的时候可以创建&#xff0c;或者手动创建

不合格机器人工程讲师再读《悉达多》-2024-

一次又一次失败的经历&#xff0c;让我对经典书籍的认同感越来越多&#xff0c;越来越觉得原来的自己是多么多么的无知和愚昧。 ----zhangrelay 唯物也好&#xff0c;唯心也罢&#xff0c;我们都要先热爱这个世界&#xff0c;然后才能在其中找到自己所热爱的事业。 ----zh…

vue2项目打包到测试环境之后报错require is not defined

配置打包命令npm run build:test到测试环境之后报错&#xff0c;打包到生产环境没有问题&#xff0c;查找了项目中的require引入似乎也没啥有问题的地方&#xff0c;所以排除是require的原因 环境变量文件&#xff1a; 打包指令&#xff1a; 解决办法&#xff1a; 将.env.tes…

[docker] Docker 网络和Cgroup

一、Docker 网络 1.1 Docker 网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默认…

【C/C++】C/C++编程——C++ 开发环境搭建

C的开发环境种类繁多&#xff0c;以下是一些常见的C 集成开发环境&#xff1a; AppCode &#xff1a;构建与JetBrains’ IntelliJ IDEA 平台上的用于Objective-C&#xff0c;C,C&#xff0c;Java和Java开发的集成开发环境CLion&#xff1a;来自JetBrains的跨平台的C/C的集成开…

《动手学深度学习(PyTorch版)》笔记2

Chapter2 Preliminaries 2.1 Automatic Differentiation 让计算机实现微分功能&#xff0c; 有以下四种方式&#xff1a; - 手工计算出微分&#xff0c; 然后编码进代码 - 数值微分 (numerical differentiation) - 符号微分 (symbolic differentiation) - 自动微分&#xff0…

java web mvc-03-JFinal

拓展阅读 Spring Web MVC-00-重学 mvc mvc-01-Model-View-Controller 概览 web mvc-03-JFinal web mvc-04-Apache Wicket web mvc-05-JSF JavaServer Faces web mvc-06-play framework intro web mvc-07-Vaadin web mvc-08-Grails JFinal JFinal 是基于 Java 语言的极…

Shell脚本③条件语句、if命令和case命令

目录 一.条件语句 1.test测试条件表达式 2.整数数值比较 &#xff08;1&#xff09;比较两个整数大小 &#xff08;2&#xff09;查看系统剩余内存是否低于1024M 3.逻辑测试 4.三元运算符 二.if命令 1.单分支结构 2.双分支结构 3.多分支结构 三.case语句 四.脚本 …

代码随想录算法训练营第十三天|层序遍历10,226.翻转二叉树,101.对称二叉树

系列文章目录 代码随想录算法训练营第一天|数组理论基础&#xff0c;704. 二分查找&#xff0c;27. 移除元素 代码随想录算法训练营第二天|977.有序数组的平方 &#xff0c;209.长度最小的子数组 &#xff0c;59.螺旋矩阵II 代码随想录算法训练营第三天|链表理论基础&#xff…

项目成本估算基准的常见步骤

项目成本估算基准是指在项目启动阶段确定的用于衡量和控制项目成本的基准。 基准成本是项目成本估算的依据&#xff0c;也是后续成本控制和决策的依据。它为管理层提供项目预算投资方案等关键投资依据&#xff0c;决定资源的分配情况&#xff0c;有助于优化资源使用效率&#x…

【Linux】文件周边001之系统文件IO

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.C语言文件IO 1.1…

2024 V加爆好友的4个方法

2024加好友&#x1f449;加爆V信的4个方法

SUSE Linux 15 SP5 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任&#xff0c;图解仅供参考&#xff0c;请悉知&#xff01;本次安装图解是在一个全新的演示环境下进行的&#xff0c;演示环境中没有任何有价值的数据&#xff0c;但这并不代表摆在你面前的环境也是如此。生产环境…

如何自己制作一个属于自己的小程序?

在这个数字化时代&#xff0c;小程序已经成为了我们生活中不可或缺的一部分。它们方便快捷&#xff0c;无需下载安装&#xff0c;扫一扫就能使用。如果你想拥有一个属于自己的小程序&#xff0c;不论是为了个人兴趣&#xff0c;还是商业用途&#xff0c;都可以通过编程或者使用…

【论文阅读|2024 WACV 多目标跟踪Deep-EloU】

论文阅读|2024 WACV 多目标跟踪Deep-EloU 摘要1 引言&#xff08;Introduction&#xff09;2 相关工作&#xff08;Related Work&#xff09;2.1 基于卡尔曼滤波器的多目标跟踪算法&#xff08;Multi-Object Tracking using Kalman Filter&#xff09;2.2 基于定位的多目标跟踪…