概要
印刷ダイアログボックスは、ユーザーがデータを印刷するプリンタの選択や印刷設定ができます。
サンプルコード
メインウィンドウのボタンを押すと、印刷ダイアログが開き、OKを押すとラベルに印刷完了と表示されます。 このサンプルでは、印刷処理は実装していないので印刷できません。
using System.Windows.Controlsを宣言しても、System.Windows.Controls.PrintDialogとクラスをフルパスで使用しないと、 クラスを認識してくれませんでした。原因は特定できませんでした。
[xaml]
<Window x:Class="PrintDialog.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="150" Width="200">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="80*"/>
<RowDefinition Height="40*"/>
</Grid.RowDefinitions>
<Button Name="btn0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"
Width="170" Height="50" Click="btn0_Click">
PrintDialogを開きます。
</Button>
<Label Name="Label01" content="メッセージ" Grid.Row="1" Background="Cornsilk" />
</Grid>
</Window>
[xaml.cs]
using System;
using System.Windows;
using System.Windows.Controls;
namespace PrintDialog
{
/// <summary>
/// MainWindow.xaml の相互作用ロジック
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void btn0_Click(object sender, RoutedEventArgs e)
{
msd_PrintDialogProcess();
}
private void msd_PrintDialogProcess()
{
// ラベルの内容を消去します。
Label01.Content = "";
// Configure printer dialog box System.Windows.Controlsを設定します。
System.Windows.Controls.PrintDialog dlg = new System.Windows.Controls.PrintDialog();
dlg.PageRangeSelection = PageRangeSelection.AllPages;
dlg.UserPageRangeEnabled = true;
// Show printer dialog box プリンター・ダイアログボックスを表示します。
Nullable<bool> result = dlg.ShowDialog();
// Process printer dialog box results プリンター・ダイアログボックスの結果を処理します。
if (result == true)
{
// ここに印刷処理を記述します。
// このサンプルコードでは、ラベル表示をするだけです。
Label01.Content = "印刷ダイアログ完了";
}
}
}
}
参考サイト
動作確認環境
Microsoft Visual Studio Express 2013 for Desktop 64bit
Windows 8.1 pro 64bit
Windows 8.1 pro 64bit