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