2010-12-23 3 views
1

사용자 컨트롤을 인쇄하는 실버 라이트 응용 프로그램이 있습니다. 사용자가 인쇄를 누르면 인쇄 버튼이 비활성화되고 상태 페이지에 "인쇄 페이지 {번호}"가 나타납니다. EndPrint 이벤트가 절대로 실행되지 않는 인쇄 작업을 취소하는 경우를 제외하고는 정상적으로 작동합니다.Silverlight 4 캡처 인쇄가 취소되었습니다.

인쇄 중 취소 이벤트를 캡처하는 방법이 있습니까? 문서상의 게시 된

+1

나는 이것을 실행했다. 그냥 빨리 보았지만 지원되지 않는 것 같습니다. 비슷한 질문 - http://stackoverflow.com/questions/3803967/capture-print-dialogs-cancel-in-silverlight-printing –

답변

0

안녕하세요 아니라 몇 달 전에 난 그냥 내 인쇄 공정도

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

를 다음 줄을 추가 인쇄 큐에 오류 또는 취소를 잡으려고, 실버 4 인쇄 API와 함께 일 사용자가 인쇄 대화 상자에서 인쇄 작업을 취소하면 EndPrint 이벤트가 발생하지 않습니다 (이 경우 BeginPrint는 절대로 발생하지 않았습니다). BeginPrint 이벤트는 EndPrint 이벤트 (http://bit.ly/ho0kKE)가 사용중인 브라우저를 고려하기 전에 항상 발생합니다. 지원되는 vs "작동합니다"사이에는 큰 차이가 있습니다. :)

희망 이

알렉스

1

가 나는 성공적인 인쇄에 OFF 중 내 통화 표시를 연기하거나 취소했다, 같은 문제를 가지고하는 데 도움이됩니다. 다음과 같은 문장을

printDocument.Print() 

를 참조하면

이 방법은 대화에 대한 비동기 호출하지 않습니다. 이 명령문을 실행하면 인쇄 대화 상자가 열립니다. 인쇄 또는 취소를 클릭하여 해당 대화 상자가 닫히지 않을 때까지 n 컨트롤이 다음 명령문으로 이동하지 않습니다. 그래서 내 문제를 어떻게 해결했는지 :

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