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:打印没一页时发生。

  • 相关阅读:
    unistd.h文件
    error C3861: “getpid”: 找不到标识符
    #include <unistd.h> 的作用
    VS2013 配置pthread
    VS2008和VC6.0下使用pthread.h头文件
    文件下载之断点续传(客户端与服务端的实现)
    C++ 判断进程是否存在
    C/C++遍历进程和进程ID的小工具
    linux --> 文件系统十问
    网络通信 --> CRC校验
  • 原文地址:https://www.cnblogs.com/salam/p/1780588.html
Copyright © 2011-2022 走看看