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

原文地址:https://www.cnblogs.com/salam/p/1780588.html