Печать Silverlight 4: получение пустой страницы - PullRequest
1 голос
/ 21 октября 2010

Попытка реализовать простую печать в SL4.У меня есть DataGrid, который я хотел бы распечатать, но пока все, что я пытаюсь распечатать, выходит на принтер как пустая страница.Похоже, что для распечатки требуется около 30-60 секунд (но это может быть не связанной проблемой).

Мой код довольно прост:

private void MenuPrint_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            PrintDocument document = new PrintDocument();
            document.PrintPage += (s, args) =>
                {
                    args.PageVisual = this.MainDataGrid;
                    // args.PageVisual = this.LayoutRoot;
                };

            // Print
            document.Print("Test Print Job");
        }

Я даже удивилсяесли это потому, что элементы слишком велики?

XAML для элемента управления MainDataGrid также довольно прост:

<sdk:DataGrid Grid.Row="3" AutoGenerateColumns="True" Name="MainDataGrid" FontSize="10" Visibility="Visible" />

Ответы [ 3 ]

0 голосов
/ 28 октября 2010

Оказывается, это было связано с ПК, а не проблема кода в конце концов.По какой-то причине тот же код начал работать сегодня (после перезагрузки машины).

Единственная проблема, которая все еще остается, заключается в том, что интерфейс Silverlight, кажется, зависает в течение 30-60 секунд, пока выполняется печать.происходит, но в конце концов он выпускает и печатает. /

0 голосов
/ 03 октября 2011

Существует проблема печати Silverlight 4 при отправке большого количества данных на некоторых принтерах, я пока не нашел хорошего объяснения этой проблемы, но вот несколько ссылок, решающих эту проблему.

http://forums.silverlight.net/t/219707.aspx/1?Silverlight+4+batch+printing+print+blank+pages+in+xp+Windows+2003+server+

http://forums.silverlight.net/t/206048.aspx/1?PrintDocument+sends+extreme+amounts+of+data+to+printer

0 голосов
/ 21 октября 2010

единственное различие, которое я вижу между вашим примером и MSDN , состоит в том, что вы используете анонимный метод для обработчика событий PrintPage.Вы пытались обработать событие EndPrint для проверки ошибок?

...