Nasıl yapılır: Yazdır İletişim Kutusu Çağırma
Uygulamanızdan yazdırma olanağı sağlamak için bir PrintDialog nesne oluşturup açabilirsiniz.
Örnek
Denetim kullanıcı PrintDialog arabirimi, yapılandırma ve XPS iş gönderimi için tek bir giriş noktası sağlar. Denetimin kullanımı kolaydır ve Genişletilebilir Uygulama biçimlendirme dili (XAML) işaretlemesi veya kodu kullanılarak örneklenebilir. Aşağıdaki örnek, kodun içinde denetimin nasıl başlatılacağını ve açılacağını ve bundan nasıl yazdırılacağını gösterir. Ayrıca, iletişim kutusunun kullanıcıya belirli bir sayfa aralığı ayarlama seçeneği sunmasını nasıl sağlayacağını da gösterir. Örnek kod, C: sürücüsünün kökünde Bir FixedDocumentSequence.xps dosyası olduğunu varsayar.
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
İletişim kutusu açıldıktan sonra, kullanıcılar bilgisayarlarında yüklü yazıcılardan seçim yapabilir. Ayrıca, yazdırma yerine bir XML Kağıt Belirtimi (XPS) dosyası oluşturmak için Microsoft XPS Belge Yazıcısı'nı seçme seçeneği de vardır.
Dekont
System.Windows.Controls.PrintDialog Bu konuda ele alınan WPF denetimi, Windows Forms'un bileşeniyle System.Windows.Forms.PrintDialog karıştırılmamalıdır.
Açıkça belirtmek gerekirse, iletişim kutusunu açmadan yöntemini kullanabilirsiniz PrintDocument . Bu anlamda, denetim görünmeyen bir yazdırma bileşeni olarak kullanılabilir. Ancak performans nedenleriyle, yöntemini veya birçok ve yönteminden XpsDocumentWriterbirini kullanmak AddJob daha iyi WriteAsync olacaktır.Write Bu konuda daha fazla bilgi için bkz . Program Aracılığıyla XPS Dosyalarını Yazdırma.
Ayrıca bkz.
.NET Desktop feedback