Silverlight打印基础知识.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Silverlight打印基础知识

ilverlight 4 在 Silverlight 功能列表中添加了打印,我想通过向您介绍令我欣慰的小程序来探讨这一点。   该程序称为 PrintEllipse,名称就是它要执行的所有操作。 MainPage 的 XAML 文件包含一个按钮,图 1 中完整地显示了 MainPage 代码隐藏文件。   图 1 PrintEllipse 的 MainPage 代码? using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Printing; using System.Windows.Shapes; namespace PrintEllipse { publicpartialclass MainPage : UserControl { public MainPage() { InitializeComponent(); } void OnButtonClick(object sender, RoutedEventArgs args) { PrintDocument printDoc =new PrintDocument(); printDoc.PrintPage += OnPrintPage; printDoc.Print(Print Ellipse); } void OnPrintPage(object sender, PrintPageEventArgs args) { Ellipse ellipse =new Ellipse { Fill =new SolidColorBrush(Color.FromArgb(255, 255, 192, 192)), Stroke =new SolidColorBrush(Color.FromArgb(255, 192, 192, 255)), StrokeThickness =24// 1/4 inch }; args.PageVisual = ellipse; } } }??   请注意 System.Windows.Printing 的 using 指令。 在单击此按钮时,该程序将创建一个类型为 PrintDocument 的对象,并为 PrintPage 事件分配一个处理程序。 当程序调用 Print 方法时,将显示标准打印对话框。 用户可借此机会设置要使用的打印机,并设置各种打印属性,例如纵向或横向模式。   当用户单击打印对话框中的“打印”时,该程序将接收到对 PrintPage 事件处理程序的调用。 此特殊程序会通过创建 Ellipse 元素并将该元素设置为事件参数的 PageVisual 属性来进行响应。 (我故意选择淡彩色以便程序不会使用太多油墨。)很快,将从打印机中出来一页,且该页中填充了一个非常大的椭圆。   您可以从网站 bit.ly/dU9B7k 运行此程序并亲自检验。 当然,本文中的所有源代码也是可下载的。   如果您的打印机与大多数打印机一样,则内部硬件将禁止打印机打印到纸张的每个边缘。 打印机通常具有固有的内置边距,不会在边距内打印任何内容;打印内容限制在小于页面全部大小的“可打印区域”上。   关于此程序,您将注意到的是:椭圆整体显示在页面的可打印区域中,很显然,程序可以轻松达到此目的。 页面可打印区域的行为方式与屏幕上的容器元素非常类似:它仅在元素大小超出此区域时才对子项进行剪辑。 一些更复杂的图形环境(例如 Windows Presentation Foundation (WPF))未必有如此好的表现(当然,与 Silverlight 相比,WPF 可提供更多打印控制和灵活性)。   PrintDocument 和事件   除了 PrintPage 事件,PrintDocument 还定义了 BeginPrint 和 EndPrint 事件,但这些事件并非与 PrintPage 一样重要。 BeginPrint 事件表明打印作业的开始。 当用户通过按“打印”按钮退出标准打印对话框并给程序机会执行初始化时,将触发该事件。 调用 BeginPrint 处理程序之后,将对 PrintPage 处理程序进行首次调用。   要在特殊打印作业中打印多页的程序将这样操作。 在对 PrintPage 处理程序的每次调用中,PrintPageEventArgs 的 HasMorePages 属性初始将设置为 false。 当处理程序完成一页后,它只需将该属性设置为 true 即可表明至少必须再打印一页。 然后再次调用 PrintPage。 PrintDocument 对象维护 Printe

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档