zoukankan      html  css  js  c++  java
  • Silverlight 4 的打印支持

    工作原理

    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。

  • 相关阅读:
    (一)Java基本数据类型及运算符
    (二)Java控制执行流程
    ArrayList类源码解析——ArrayList动态数组的实现细节(基于JDK8)
    Java的四个标记接口:Serializable、Cloneable、RandomAccess和Remote接口
    Java容器类源码分析之Iterator与ListIterator迭代器(基于JDK8)
    Java容器类源码分析前言之集合框架结构(基于JDK8)
    浅谈虚树
    点分治
    Ze_Min Tree 主席树
    笛卡尔树的妙用
  • 原文地址:https://www.cnblogs.com/jacle169/p/2810038.html
Copyright © 2011-2022 走看看