Home > C# > WPF > WPFコントロール > ダイアログボックス

印刷ダイアログボックス

概要

印刷ダイアログボックスは、ユーザーがデータを印刷するプリンタの選択や印刷設定ができます。

サンプルコード

メインウィンドウのボタンを押すと、印刷ダイアログが開き、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
このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」