Практическое руководство. Вызов диалогового окна печати
Чтобы обеспечить возможность печати из приложения, вы можете создать и открыть PrintDialog объекта.
Пример
Элемент управления PrintDialog предоставляет единую точку входа для UI, конфигурации и отправки задания XPS. Элемент управления является простой в использовании и может быть создан с помощью XAML разметки или кода. Ниже приведен пример, как создать и открыть элемент управления в коде и способ печати из него. Также показано, как убедиться, что диалоговое окно предоставит пользователям возможность установки конкретного диапазона страниц. В примере кода предполагается, что имеется файл FixedDocumentSequence.xps в корне диска C:.
private void InvokePrint(object sender, RoutedEventArgs e)
{
// Create the print dialog object and set options
PrintDialog pDialog = new PrintDialog();
pDialog.PageRangeSelection = PageRangeSelection.AllPages;
pDialog.UserPageRangeEnabled = true;
// Display the dialog. This returns true if the user presses the Print button.
Nullable<Boolean> print = pDialog.ShowDialog();
if (print == true)
{
XpsDocument xpsDocument = new XpsDocument("C:\\FixedDocumentSequence.xps", FileAccess.ReadWrite);
FixedDocumentSequence fixedDocSeq = xpsDocument.GetFixedDocumentSequence();
pDialog.PrintDocument(fixedDocSeq.DocumentPaginator, "Test print job");
}
}
Когда откроется диалоговое окно, пользователи будут доступны для выбора принтеров, установленных на компьютере. Они также получат возможность выбрать средство записи документов XPS Microsoft для создания Формат XPS (XML Paper Specification) файла вместо печати.
Note
System.Windows.Controls.PrintDialog Управления WPF, как описано в этом разделе, не следует путать с System.Windows.Forms.PrintDialog компонент Windows Forms.
Строго говоря, можно использовать PrintDocument метода, не открывая диалоговое окно. В этом смысле элемент управления может использоваться как невидимого компонента печати. Но из соображений производительности было бы лучше использовать AddJob метода или один из многих Write и WriteAsync методы XpsDocumentWriter. Дополнительные сведения об этом см. в разделе печатать файлы XPS программным способом и.