zoukankan      html  css  js  c++  java
  • Silverlight学习笔记十三关于SilverLight的打印

    Silverlight 4的打印功能是由PrintDocument类进行控制,不过我觉得太卡拉。实现打印功能需要按照以下步骤:

      步骤1:建立PrintDocument对象;

      步骤2:在PrintDocument对象中设置文档名;

      步骤3:添加事件句柄到PrintPage事件中,同时也可以添加到StartPrint和EndPrint事件中;

      步骤4:在PrintPage打印事件中,建立一个打印窗口,该窗口将作为父窗口出现,可以添加想打印的内容或者控件到该打印窗口。例如建立一个StackPanel,然后在StackPanel中添加想打印的内容控件;

      步骤5:在打印时,如果HasMorePages为True,说明支持多个页面进行打印;

      步骤6:调用PrintDocument对象的Print()方法就完成了打印功能。  

      例子:

       在DataGridDemo.xaml中修改

      添加<Button Content="打印" Click="Button_Click"></Button>

       建立private PrintDocument print PrintDocument对象;

    在构造函数中添加  print=new PrintDocument();
                print.PrintPage += new EventHandler<PrintPageEventArgs>(document_PrintPage);

       private void document_PrintPage(object sender, PrintPageEventArgs e)
            {
                //打印的UI
                e.PageVisual = this.dataGrid;

                e.HasMorePages = false; //获取或设置是否有更多页要打印。默认为false 

            }


            private void Button_Click(object sender, RoutedEventArgs e)
            {
                print.Print("dataGrid");
            }

    注:重要属性(详细见Sliverlight 帮助文档:下载地址http://download.microsoft.com/download/1/B/4/1B459673-1C9F-4744-81C9-80FC27D21B08/CHS_Silverlight_4.EXE

      1.PrintedPageCount:获取已打印的页数。

      2.BeginPrint事件:在调用 Print()方法并且打印对话框成功返回之后,但 PrintPage 事件引发之前发生。

      3.Print事件:当打印操作结束或者应用程序作者取消打印操作时发生。

      4.PrintPage:打印没一页时发生。

  • 相关阅读:
    ROS tf 两个常用的函数
    C/C++ assert()函数用法总结
    drand48 等 随机数生成函数
    PF部分代码解读
    Error "Client wants topic A to have B, but our version has C. Dropping connection."
    launch 文件的写法
    Spring七大框架
    web.xml filter配置
    web.xml listener配置
    web.xml加载过程
  • 原文地址:https://www.cnblogs.com/salam/p/1780588.html
Copyright © 2011-2022 走看看