43章:WPFでの印刷(3) (C#)

    作成2013.04.30

     サンプルコード「WPF Printing Overvie1」の中にXAMLで作成した図形の印刷方法のわかりやすい事例が見つかりました。  わかってみると驚くほど簡単な記述です。
  1. 参照元情報
     印刷の概要は
    「印刷の概要」にジャンプする
     PrintDialogクラスを使用するのがスマートのようです。

  2. WPFでの印刷(3) (C#)
     サンプルコード「WPF Printing Overvie1」の一部です。
     ダウンロード後は解凍してから使用してください。
      [WPFでの印刷(3) (C#) ]をダウンロードする。
     解凍すると「43WPF_Printing3」フォルダーがあります。
    注(1)「43WPF_Printing3」フォルダーの「WPF_Printing3.sln」ファイルをダブルクリックすると「Express 2012 for Windows Desktop」が起動します。
    注(2)メニューの「ウインド」_「ウインドレイアウトのリセット」で標準に戻ります。
    注(3)「ソリューションエクスプローラ」ウインドウ内の「MainWindow.xaml」をダブルクリックすると「デザイン」と「XAML」が表示されます。
    注(4)メニューの「表示」_「コード」を選択するとコードが表示されます。
    注(5)「WPF_Printing3.sln」の動作確認は「デバッグ」_「デバッグ開始」で実行します。デバッグ機能を用いて動作確認を行います。


  3. WPF_Printing2.slnの実行
    (1)「Microsoft Visual Basic 2010 Express」のデバッグ機能を使用します。
    (2)「デバッグ」_「デバッグ開始」を選択します。
    (3)図形がはいった印刷画面が表示されます。
    (4)印刷ボタンを押すと印刷が実行されます。
    (5)クローズボックスで終了します。


  4. プロジェクトの構成
    (1)XAMLコードとコードで構成されます。


  5. MainWindow.xamlの全コード
    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="401" Width="522">
        <Grid>
            <Grid Name="Grid1" Margin="0,25,0,0">
                <Ellipse Height="50" HorizontalAlignment="Left" Margin="65,91,0,0" Name="Ellipse1" Stroke="Black" VerticalAlignment="Top" Width="93" Fill="BlueViolet" />
                <Label Content="Label" Height="28" HorizontalAlignment="Left" Margin="225,167,0,0" Name="Label1" VerticalAlignment="Top" />
                <Rectangle Height="56" HorizontalAlignment="Left" Margin="264,85,0,0" Name="Rectangle1" Stroke="Black" VerticalAlignment="Top" Width="101" Fill="Magenta" />
            </Grid>
            <StackPanel Height="25" HorizontalAlignment="Left" Name="StackPanel1" VerticalAlignment="Top">
                <Button Content="印刷" Height="23" Name="Button1" Width="75" />
            </StackPanel>
        </Grid>
    </Window>
    


  6. XAMLのポイント
    (1)Grid1内に図形を配置します。


  7. MainWindow.xaml.csの全コード
    using System.Windows;
    using System.Windows.Controls;
    
    namespace WPF_Printing3
    {
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void Button1_Click(object sender, RoutedEventArgs e)
            {
                PrintDialog printDialog = new PrintDialog();
                if (printDialog.ShowDialog() == true)
                {
                    printDialog.PrintVisual(Grid1, "TEST");
                }
            }
        }
    }
    


  8. コードの解説
    (1)PrintDialog printDialog = new PrintDialog();でプリントダイアログを開きます。
    (2)if (printDialog.ShowDialog() == true)は印刷ボタンが押された場合、以下を実行します。
    (3)printDialog.PrintVisual(Grid1, "TEST");でGrid1に含まれる図形を印刷します。


    感想:
    (1)非常に簡単な記載でXAMLで作成した図形を印刷できます。
    (2)画面のデザイン等の制限がありません。
    (3)かなり、実用的なコードです。







44章:WPFでのマルチウインドウ (C#) に行く。

トップページに戻る。