У меня есть небольшая проблема с курицей и яйцом ...
Я хочу напечатать данные карты, которые асинхронно извлекаются из веб-службы. Проблема в том, что я не знаю выбранный размер бумаги (который влияет на размер карты, которую мне нужно запросить у службы), пока пользователь не нажмет OK в диалоговом окне печати и не произойдет событие PrintPage.
Единственное, о чем я могу думать, это как-то «приостановить» весь процесс печати в середине события PrintPage, извлечь изображение карты, установить PageVisual текущей страницы на изображение карты, а затем позволить процессу печати продолжить , Но это не представляется ни возможным, ни «правильным».
Я подумал о том, чтобы пользователь выбрал размер страницы из поля со списком перед печатью (таким образом, я мог получить правильный размер изображения и включить кнопку «печать» только после того, как все данные карты были извлечены). Но тогда пользователю нужно будет выбрать размер страницы дважды, один раз из моего поля со списком и один раз из диалогового окна печати. Если они выберут 11x17 в поле со списком, а затем просто нажмут OK в диалоговом окне печати (что весьма вероятно), будет напечатан макет 11x17 с размером бумаги по умолчанию 8,5x11.
Единственное упоминание об этой проблеме, которое я обнаружил, это http://betaforums.silverlight.net/forums/p/192371/444897.aspx,, и они также не нашли решения.