Захват печати Silverlight 4 отменен - PullRequest
1 голос
/ 23 декабря 2010

У меня есть приложение silverlight, которое распечатывает пользовательский элемент управления. Когда пользователь нажимает кнопку печати, кнопка печати отключается, и появляется сообщение о состоянии «Печать страницы {число}». Он работает нормально, за исключением случаев, когда вы отменяете задание печати, событие EndPrint никогда не запускается.

Есть ли способ перехватить событие отмены печати?

Ответы [ 2 ]

1 голос
/ 31 января 2013

У меня была та же проблема, мне пришлось отключить индикатор занятости на успешной печати или отменить.

Если вы видите следующее утверждение

printDocument.Print()

этот метод не является асинхронным вызовом вашего диалога. Когда этот оператор выполняется, открывается диалоговое окно печати. До тех пор, пока это диалоговое окно не будет закрыто (нажав кнопку «Печать» или «Отмена»), элемент управления не перейдет к следующему оператору. Итак, следуя тому, как я решил свою проблему:

TurnBusyIndicator(ON)
printDocument.Print()
TurnBusyIndicator(OFF)
0 голосов
/ 14 января 2011

Здравствуйте, несколько месяцев назад я работал с Silverlight 4 Printing 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) также учитывает используемый вами браузер, существует большая разница между поддерживаемым и «оно работает»:)

надеюсь, это поможет

Alex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...