2010-12-23 69 views
1

我有一个silverlight应用程序,打印出一个用户控件。当用户按下打印时,打印按钮被禁用,并且出现状态消息“正在打印页面{编号}”。它工作正常,除非您取消打印作业EndPrint事件永远不会被解雇。Silverlight 4捕获打印取消

有没有办法捕获打印取消事件?

+1

我已经运行到这一点。只是快速查看它,但似乎不支持。一个类似的问题 - http://stackoverflow.com/questions/3803967/capture-print-dialogs-cancel-in-silverlight-printing – 2011-01-11 22:56:12

回答

0

你好好几个月前,我曾与Silverlight 4的打印API,捕捉任何错误或取消打印队列中我刚才添加下面一行到我的打印过程

PrintDocument pd = new PrintDocument(); 
.... 
pd.EndPrint += (s, args) => 
    { 
     //Handle possilbe print errors or post print stuff here (wich you can see in args 
    }; 

还对文档张贴如果用户从打印对话框中取消打印操作,EndPrint事件不会发生(在这种情况下,BeginPrint从未被引发)。 BeginPrint事件将始终发生在EndPrint事件(http://bit.ly/ho0kKE)也考虑到您正在使用的浏览器之前,在支持vs“it works”之间存在很大差异:)

hope这有助于

亚历

1

我有同样的问题,我不得不关闭要么把我的忙指示灯成功打印或取消。

如果你看到下面的语句

printDocument.Print() 

这种方法是不是你的对话框的异步调用。当这个语句执行时,打印对话框打开。除非n直到该对话框没有关闭(通过单击打印或取消),控件才会转到下一个语句。所以,下面我如何解决我的问题:

TurnBusyIndicator(ON) 
printDocument.Print() 
TurnBusyIndicator(OFF)