Практическое руководство. Вызов диалогового окна печати
Чтобы обеспечить возможность печати из приложения, необходимо создать и открыть объект PrintDialog.
Пример
Элемент управления PrintDialog обеспечивает одну точку входа для UI, конфигурацию и отправку задания XPS. Элемент управления прост в использовании и может быть создан с помощью разметки Extensible Application Markup Language (XAML) или кода. В следующем примере показано создание экземпляра, открытие элемента управления в коде и печать из него. Также показано, как убедиться в том, что окно предоставит пользователям возможность установки конкретного диапазона страниц. В примере кода предполагается, что в корневой папке диска C: имеется файл FixedDocumentSequence.xps.
Private Sub InvokePrint(ByVal sender As Object, ByVal e As RoutedEventArgs)
' Create the print dialog object and set options
Dim pDialog As New PrintDialog()
pDialog.PageRangeSelection = PageRangeSelection.AllPages
pDialog.UserPageRangeEnabled = True
' Display the dialog. This returns true if the user presses the Print button.
Dim print? As Boolean = pDialog.ShowDialog()
If print = True Then
Dim xpsDocument As New XpsDocument("C:\FixedDocumentSequence.xps", FileAccess.ReadWrite)
Dim fixedDocSeq As FixedDocumentSequence = xpsDocument.GetFixedDocumentSequence()
pDialog.PrintDocument(fixedDocSeq.DocumentPaginator, "Test print job")
End If
End Sub
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) для создания файла XML Paper Specification (XPS) вместо печати.
![]() |
---|
Элемент управления System.Windows.Controls.PrintDialog WPF, рассматриваемый в этом разделе, не следует путать с компонентом System.Windows.Forms.PrintDialog Windows Forms. |
Строго говоря, метод PrintDocument можно использовать даже без открытия диалогового окна. Из этого следует, что элемент управления может использоваться в качестве невидимого компонента печати. Однако, из соображений производительности лучше использовать метод AddJob или один из многих методов Write и WriteAsync XpsDocumentWriter. Дополнительные сведения см. в разделе Как печатать файлы XPS программным способом.