2010-12-23 71 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)