Procedura: richiamare una finestra di dialogo di stampa
Per fornire la possibilità di stampare dall'applicazione, è sufficiente creare e aprire un PrintDialog oggetto.
Esempio
Il PrintDialog controllo fornisce un singolo punto di ingresso per l'invio di processi XPS, configurazione e interfaccia utente. Il controllo è facile da usare e può essere creata un'istanza usando markup XAML (Extensible Application Markup Language) o codice. Nell'esempio seguente viene illustrato come creare un'istanza e aprire il controllo nel codice e come stamparlo. Viene inoltre illustrato come assicurarsi che la finestra di dialogo consentirà all'utente di impostare un intervallo specifico di pagine. Il codice di esempio presuppone che sia presente un file FixedDocumentSequence.xps nella radice dell'unità 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");
}
}
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
Una volta aperta la finestra di dialogo, gli utenti potranno selezionare le stampanti installate nel computer. Avranno anche la possibilità di selezionare Microsoft XPS Document Writer per creare un file XPS (XML Paper Specification) invece di stampare.
Nota
Il System.Windows.Controls.PrintDialog controllo di WPF, illustrato in questo argomento, non deve essere confuso con il System.Windows.Forms.PrintDialog componente di Windows Form.
In senso stretto, è possibile usare il PrintDocument metodo senza aprire mai il dialogo. In tal senso, il controllo può essere utilizzato come componente di stampa non visualizzato. Tuttavia, per motivi di prestazioni, sarebbe preferibile usare il AddJob metodo o uno dei molti Write metodi e WriteAsync di XpsDocumentWriter. Per altre informazioni, vedere Stampare file XPS a livello di codice.
Vedi anche
.NET Desktop feedback