Share via


Gewusst wie: Aufrufen eines Druckdialogfelds

Um die Möglichkeit zum Drucken aus Ihrer Anwendung bereitzustellen, können Sie einfach ein PrintDialog-Objekt erstellen und öffnen.

Beispiel

Das PrintDialog-Steuerelement stellt einen einzelnen Einstiegspunkt für die Benutzeroberfläche, zur Konfiguration und für die XPS-Auftragsübermittlung bereit. Das Steuerelement ist einfach zu verwenden und kann mithilfe von XAML-Markup (Extensible Application Markup Language) oder -Code instanziiert werden. Im folgenden Beispiel wird veranschaulicht, wie Sie das Steuerelement im Code instanziieren und öffnen, und wie Sie daraus drucken. Außerdem wird gezeigt, wie Sie sicherstellen, dass das Dialogfeld dem Benutzer die Möglichkeit gibt, einen bestimmten Seitenbereich festzulegen. Der Beispielcode geht davon aus, dass im Stammverzeichnis des „C:“-Laufwerks eine Datei „FixedDocumentSequence.xps“ vorhanden ist.

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");
        }
    }
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

Nachdem das Dialogfeld geöffnet wurde, können Benutzer unter den Druckern auswählen, die auf ihrem Computer installiert sind. Sie haben außerdem die Möglichkeit, den Microsoft XPS-Dokumen-Generator auszuwählen, um eine XPS-Datei (XML Paper Specification) zu erstellen, anstatt zu drucken.

Hinweis

Das System.Windows.Controls.PrintDialog-Steuerelement von WPF, das in diesem Thema erläutert wird, sollte nicht mit der System.Windows.Forms.PrintDialog-Komponente von Windows Forms verwechselt werden.

Streng genommen können Sie die PrintDocument-Methode verwenden, ohne je das Dialogfeld zu öffnen. In diesem Sinne kann das Steuerelement als nicht angezeigte Druckkomponente verwendet werden. Aus Leistungsgründen wäre es allerdings besser, entweder die AddJob-Methode oder eine der vielen Write- und WriteAsync-Methoden von XpsDocumentWriter zu verwenden. Weitere Informationen hierzu finden Sie unter Programmgesteuertes Drucken von XPS-Dateien.

Weitere Informationen