Procedura: Richiamare una finestra di dialogo di stampa
Per offrire la possibilità di stampare dall'applicazione, è sufficiente creare e aprire un oggetto PrintDialog.
Esempio
Il controllo PrintDialog offre un unico punto di accesso per l'interfaccia utente, la configurazione e l'invio di lavori XPS. 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 il Microsoft XPS Document Writer per creare un file XPS (XML Paper Specification) 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 senso stretto, è possibile usare il metodo PrintDocument 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 metodo AddJob o uno dei numerosi metodi Write e WriteAsync del XpsDocumentWriter. Per ulteriori informazioni, vedere stampare programmaticamente file XPS.
Vedere anche
.NET Desktop feedback