Procedura: richiamare una finestra di dialogo di stampa
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'UI, la configurazione e l'invio di processi XPS. Per il controllo, semplice da utilizzare, si possono creare istanze utilizzando markup Extensible 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.
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");
}
}
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 (la pagina potrebbe essere in inglese) per creare un file XML Paper Specification (XPS) anziché stampare.
![]() |
---|
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 Forms. |
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 .
Vedere anche
Riferimenti
Concetti
Cenni preliminari sulla stampa