Блог Сергея Байдачного

Мой блог о технологиях

Введение в SilverLight 4: Печать

with one comment

Одна из важных и фундаментальных возможностей, которая должна значительно расширить возможности SilverLight-приложений, это печать.

Для демонстрации возможности печати, будем использовать пример из предыдущего поста, определив обработчик события Click для кнопки printButton, объект типа PrintDocument и обработчик события PrintPage. Вот как будет выглядеть наш код:

private PrintDocument printDoc;
 
public MainPage()
{
    InitializeComponent();
 
    printDoc.PrintPage += new 
       EventHandler<PrintPageEventArgs>(printDoc_PrintPage);
}
 
void printDoc_PrintPage(object sender, PrintPageEventArgs e)
{
    e.PageVisual = photoPanel;
    e.HasMorePages = false;
}
 
private void printButton_Click(object sender, RoutedEventArgs e)
{
    printDoc.DocumentName = "Images";
    printDoc.Print();
}
 

Как видно из этого примера, за печать в SilverLight отвечает класс PrintDocument, объект которого мы создали в коде выше. Объект этого класса способен генерировать три события: StartPrint, EndPrint и PrintPage. Первые два события позволяют провести предварительную подготовку к печати и получить информацию об успешном завершении печати соответственно. А вот обработчик события PrintPage как раз и выполняет всю черновую работу. Задача обработчика события PrintPage получить параметры страницы (тут только длина и ширина отображаемой области), используя параметр типа PrintPageEventArgs, сформировать содержимое страницы и отправить ее на печать. При этом управление печатью нескольких страниц происходит с помощью свойства HasMorePages.

Фактически, объект типа PrintDocument способен печатать любой элемент, порожденный от UIElement, то есть, для печати страницы Вы можете выбрать любой из контейнеров, расположить в нем свои элементы и передать ссылку на этот контейнер с помощью свойства PageVisual. В примере выше, мы не формировали специальную страницу для печати, а просто использовали существующий контейнер, отображающий наши картинки.

Реклама

Written by Sergiy Baydachnyy

02.01.2010 в 08:55

Опубликовано в SilverLight

Tagged with

Один ответ

Subscribe to comments with RSS.

  1. Thanks , I have recently been searching for information about this subject
    for a long time and yours is the greatest I’ve came upon so far.

    But, what concerning the bottom line? Are you positive in regards to the supply?


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: