工作原理

Silverlight 4 打印支持允许您指定要打印的 XAML 。整体漂亮,简单。这一切都是使用 PrintDocument 类。此类提供了用于回调来询问你如何打印单个页的多个事件。首先我们来看看简单的 PrintDocument :

PrintDocument doc = new PrintDocument();

doc.DocumentName = "Sample Print";

doc.StartPrint += new EventHandler<StartPrintEventArgs>(doc_StartPrint);

doc.PrintPage += new EventHandler<PrintPageEventArgs>(doc_PrintPage);

doc.Print();

在创建一个新的 PrintDocument 时有一个简单的模式: 设置文档名称、 处理事件和开始打印过程。文档名称是在后台打印程序中显示的名称 (至少在 Windows 中,不能测试它在 Mac 上)。StartPrint / EndPrint 事件称为之前和之后,主要用于安装/拆卸的打印元素。 在打印 方法开始打印过程,并要求用户指定打印机。打印机选择后,打印系统调用的打印机规格从打印机本身确定发送 PrintPage 事件:

void doc_PrintPage(object sender, PrintPageEventArgs e)

{

// 延伸到打印页的大小

printSurface.Width = e.PrintableArea.Width;

printSurface.Height = e.PrintableArea.Height;

// 指定要打印的 XAML 元素

e.PageVisual = printSurface;

// 指定是否再次调用另一个页

e.HasMorePages = false;

}

PrintPage 事件传递一个 PrintPageEventArgs 对象,其中包含两个部分信息。最重要的是,宽度高度,可以用来帮助在打印之前的XAML大小。 它还允许您指定了 PageVisual,这是要打印的任何 UIElement 派生的元素。 通常,这是其中一个控件 (例如 DataGrid) 或其他元素的容器。如果你只在做页面打印,您还可以指定整个页面。 最后,您必须指定是否有更多页打印的HasMorePages 属性。 当HasMorePages 设置为 true,页面在打印和打印第二页再次调用在 PrintPage。

转载于:https://www.cnblogs.com/jacle169/archive/2012/12/09/2810038.html

Silverlight 4 的打印支持相关推荐

  1. 设备管理器中的usb打印支持有个叹号是什么意思,如何解决?

    如果出现下面图片这个现象,就是USB打印支持前面,有个黄色的感叹号. 是什么意思呢? 该怎么样解决呢? 首选,先分析原因,再说解决办法? 导致这个问题,有四个方面的原因 第一,电脑系统出现了问题 第二 ...

  2. silverlight控件打印预览

    silverlight的打印预览,一般是给要预览的控件照一张快照,这是通过WriteableBitmap类给控件生成位图实现的. 但是WriteableBitmap类生成位图,必须要控件先经过渲染,要 ...

  3. 打印机怎么选择双面打印,支持双面打印资料的平台

    使用打印机怎么选择双面打印?双面打印在我们日常打印时都是比较常用的,选择双面打印可以节省打印的费用,提高打印纸张的利用率,但是并不是每一个打印店都支持为大家双面打印资料,有些打印平台是不支持双面打印的 ...

  4. 哪种手机便签软件可以打印,支持打印的手机便签软件

    手机便签几乎是人人都会用到的便签工具,如果我们想记录一些重要信息,或者想积累一些知识碎片,都会保存在手机便签上.日久天长,手机便签上内容就会很多.如果想把手机便签上的内容打印出来,该怎么操作呢? 打印 ...

  5. 打印系列一:(套打解决方案(支持B/S和C/S))

    很久没有写文章了也很少有时间,IT的朋友都很忙:既然来了肯定不是空手来啊:废话就不多讲了 打印想必大家都遇到过这样的问题,不想用那些太过强大的打印控件,在我开发的过程中也遇到了这样的情况我想要实现基本 ...

  6. Silverlight 打印

    摘自:http://www.cnblogs.com/jiajiayuan/archive/2012/04/13/2444246.html Silverlight中的打印只有一个类,那就是PrintDo ...

  7. C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)

    在批量打印商品标签时一般都要加上条码或图片,而这类应用大多是使用斑马打印机,所以我也遇到了怎么打印的问题. 一种办法是用标签设计软件做好模板,在标签设计软件中打印,这种办法不用写代码,但对我来说觉得不 ...

  8. C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)...

    在批量打印商品标签时一般都要加上条码或图片,而这类应用大多是使用斑马打印机,所以我也遇到了怎么打印的问题. 一种办法是用标签设计软件做好模板,在标签设计软件中打印,这种办法不用写代码,但对我来说觉得不 ...

  9. C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】...

    原文地址:http://blog.csdn.net/ldljlq/article/details/7338772 在批量打印商品标签时一般都要加上条码或图片,而这类应用大多是使用斑马打印机,所以我也遇 ...

最新文章

  1. linux循环处理多行,Linux高级文本处理之gawk分支和循环(四)
  2. python timestamp和datetime之间的转换_python – 在datetime,Timestamp和datetime64之间转换
  3. 【oracle】查看数据库最近执行了哪些sql语句
  4. [3.30校内训练赛]
  5. [Python]网络爬虫(十):一个爬虫的诞生全过程(以山东大学绩点运算为例)
  6. QNAP 修复 NAS 备份应用中的严重漏洞
  7. mysql 中 where条件的OR 和 and 加括号的说法
  8. mysql主从配置修改重启无效
  9. NOJ [1184] Elaine's Queue
  10. Pseudo-terminal will not be allocated because stdin is not a terminal
  11. Linux学习笔记——~/.bash_profile文件
  12. multisim收敛助手有啥用_Multisim 收敛助手报告
  13. iis php 500 内部服务器错误,服务器_iis的http 500内部服务器错误的解决,iis的http 500内部服务器错误是 - phpStudy...
  14. Mysql 获取成绩排序后的名次
  15. HttpClient4.5.6设置代理以及代理验证(用户名和密码)
  16. Beam Search(集束搜索)算法
  17. web設計常用代碼收集
  18. POJ2386-Lake Counting
  19. 计算机打开页面恢复默认大小,win10怎样恢复Windows窗口默认的大小?
  20. 利用ffmpeg把一帧原始视频数据转换成jpg格式的图片

热门文章

  1. JBOSS 5.0.0GA的集群搭建
  2. Mysql创建用户和给用户授权
  3. 蓝桥杯 AGLO-152 算法训练 8-2求完数
  4. 蓝桥杯 ADV-210 算法提高 2-1屏幕打印
  5. laravel leftjoin 右侧取最新一条_高铁规划:湖南至广西将增添一条高铁,填补中西部地区铁路网空白...
  6. jdbc executebatch 非事务_jdbc技术
  7. 【学习笔记】圆方树(CF487E Tourists)
  8. MYSQL存储过程中事务和DECLARE EXIT/CONTINUE HANDLER的使用
  9. Java 8 中的 java.util.Optional
  10. 部分高级正则特性 使用