Procedura: richiamare una finestra di dialogo di stampa

Aggiornamento: novembre 2007

Per consentire la stampa dall'applicazione, è possibile semplicemente creare e aprire un oggetto PrintDialog.

Esempio

Il controllo PrintDialog rappresenta un singolo punto di ingresso per l'interfaccia utente, la configurazione e l'invio di processi XPS. Per il controllo, semplice da utilizzare, si possono creare istanze del controllo utilizzando markupExtensible Application Markup Language (XAML) o codice. Nell'esempio riportato di seguito viene illustrato come creare istanze, aprire il controllo nel codice e stampare. Viene inoltre illustrato come verificare che la finestra di dialogo consenta all'utente la possibilità di impostare un intervallo specifico di pagine. Nell'esempio di codice si presuppone la presenza di un file FixedDocumentSequence.xps nella radice dell'unità C. È possibile trovare tale file nella sottocartella \Content dopo aver scaricato l'esempio completo da Esempio di PrintDialog.

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

Una volta aperta la finestra di dialogo, gli utenti potranno scegliere tra le stampanti installate sul computer. Sarà possibile anche selezionare Microsoft XPS Document Writer (informazioni in lingua inglese) per creare un file XML Paper Specification (XPS) invece di stampare.

Nota

Il controllo System.Windows.Controls.PrintDialog di WPF, illustrato in questo argomento, non deve essere confuso con il componente System.Windows.Forms.PrintDialog di Windows Form.

In teoria, è possibile utilizzare il metodo PrintDocument senza mai aprire la finestra di dialogo. Infatti il controllo può essere utilizzato come un componente di stampa non visibile. Ma per motivi di prestazioni, sarebbe meglio utilizzare il metodo AddJob o uno dei molti metodi Write e WriteAsync di XpsDocumentWriter. Per ulteriori informazioni su questo argomento, vedere Procedura: stampa di file XPS a livello di codice e Stampa di documenti XPS.

Vedere anche

Concetti

Documenti di Windows Presentation Foundation

Cenni preliminari sulla stampa

Riferimenti

PrintDialog

Altre risorse

Esempi relativi alla stampa

Microsoft XPS Document Writer