方法: 印刷ダイアログ ボックスを呼び出す
アプリケーションから印刷する機能を提供するには、PrintDialog オブジェクトを作成して開くだけで済みます。
例
PrintDialog コントロールには、UI、構成、および XPS ジョブの送信用に 1 つのエントリ ポイントが用意されています。 このコントロールは使いやすく、Extensible Application Markup Language (XAML) マークアップまたはコードを使用してインスタンスを作成できます。 コードでコントロールをインスタンス化して開く方法と、そこから印刷する方法の例を次に示します。 また、ダイアログで、特定の範囲のページを設定するオプションをユーザーに提供する方法も示します。 このコード例では、C: ドライブのルートに FixedDocumentSequence.xps ファイルがあることを前提としています。
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
ダイアログが開くと、ユーザーはコンピューターにインストールされているプリンターから選択できます。 また、[Microsoft XPS ドキュメント ライター] を選択し、印刷するのではなく XML Paper Specification (XPS) ファイルを作成することもできます。
注意
このトピックで説明されている WPF の System.Windows.Controls.PrintDialog コントロールは、Windows フォームの System.Windows.Forms.PrintDialog コンポーネントと混同しないでください。
厳密に言うと、ダイアログを開かなくても PrintDocument メソッドを使用できます。 その意味で、コントロールは目に見えない印刷コンポーネントとして使用できます。 ただし、パフォーマンス上の理由から、AddJob メソッド、または XpsDocumentWriter の多くの Write および WriteAsync メソッドのいずれかを使用することをお勧めします。 この詳細については、プログラムによる XPS ファイルの印刷に関するページを参照してください。
関連項目
.NET Desktop feedback