16章:10 行でズバリ!! デスクトップ アプリケーションの作成 (WPF アプリケーション) (C#)

    作成2013.04.15

     10 行でズバリ!! デスクトップ アプリケーションの作成 (WPF アプリケーション) (C#)は下記の参照元情報からほぼ完全な作成方法の説明と解説を参照できます。

  1. 参照元情報
     10 行でズバリ!! デスクトップ アプリケーションの作成 (WPF アプリケーション) (C#)は(Visual Basic ガイド ツアー)
    「10 行でズバリ!! デスクトップ アプリケーションの作成 (WPF アプリケーション) (C#) 」にジャンプする
     作成方法の詳細は上記を参照願います。


  2. 10 行でズバリ!! デスクトップ アプリケーションの作成 (WPF アプリケーション) (C#)の完成ファイル
     10 行でズバリ!! デスクトップ アプリケーションの作成 (WPF アプリケーション) (C#)の作成の解説とおりに作業を実施すると、C#プロジェクトファイル群が完成しますが、 ここでは、VBで作成したプログラムをC#言語に変換を基本とします。
     完成ファイルは以下からダウンロードできます。
     ダウンロード後は解凍してから使用してください。
      [10 行でズバリ!! デスクトップ アプリケーションの作成 (WPF アプリケーション) (C#)]をダウンロードする。
     解凍すると「16MyWpfApplication」フォルダーがあります。
    注(1)「16MyWpfApplication」フォルダーの「MyWpfApplication.sln」ファイルをダブルクリックすると「Express 2012 for Windows Desktop」が起動します。
    注(2)メニューの「ウインド」_「ウインドレイアウトのリセット」で標準に戻ります。
    注(3)「ソリューションエクスプローラ」ウインドウ内の「MainWindow.xaml」をダブルクリックすると「デザイン」が表示されます。
    注(4)メニューの「表示」_「コード」を選択するとコードが表示されます。
    注(5)「MyWpfApplication.sln」の動作確認は「デバッグ」_「デバッグ開始」で実行します。デバッグ機能を用いて動作確認を行います。


  3. MyWpfApplication.slnの実行
    (1)「Express 2012 for Windows Desktop」のデバッグ機能を使用します。
    (2)「デバッグ」_「デバッグ開始」を選択します。
    (3)操作画面が表示されます。
    (4)日時ボタンを押すと日時が表示されます。 (5)スライダーを動かすと日時の表示が回転します。 (6)クローズボックスで終了します。


  4. 新規プロジェクトの作成
    (1)MainWindow.xamlのデザイン設定
     新規プロジェクトを作成すると「デザイナー」にはMainWindow.xamlが自動生成されます。MainWindow.xamlのデザイン設定はVBのMainWindow.xamlのコピー&ペーストで完成します。

    (2) MainWindow.xaml.csコード
     基本コードが自動生成されます。


  5. MainWindow.xamlの全コード
    <Window x:Class="MyWpfApplication.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Grid Margin="21,23,25,0" Name="Grid1" Height="100" VerticalAlignment="Top" Background="AliceBlue">
                <TextBox Margin="15,16,15,0" Name="TextBox1" Height="24" VerticalAlignment="Top" />
                <Button Height="23" HorizontalAlignment="Right" Margin="0,0,15,14" Name="Button1" VerticalAlignment="Bottom" Width="75" Click="Button1_Click">日時</Button>
            </Grid>
            <Slider Height="22" Margin="12,0,12,12" Name="Slider1" VerticalAlignment="Bottom" Maximum="360" ValueChanged="Slider1_ValueChanged" />
            <TextBlock Height="48" HorizontalAlignment="Left" Margin="44,160,0,0" Name="TextBlock1" Text="TextBlock" VerticalAlignment="Top" Width="180" />
        </Grid>
    </Window>
    


  6. MainWindow.xamlコードの解説
    <Window>階層1
        <Grid>階層2
           <Grid>階層3-1
                 <TextBox/>階層4-1
                <Button><Button/>階層4-1
           </Grid>
           <Slider/>階層3-2
           <TextBlock/>階層3-2
        </Grid>
    </Window>
    
    (1)階層2:<Slider/>階層3-2と <TextBlock/>階層3-2を含みます。
    (2)階層3: <TextBox/>階層4-1と<Button><Button/>階層4-1を含みます。階層3は Name="Grid1"と定義されます。


  7. MainWindow.xaml.csの全コード
    using System;
    using System.Windows;
    using System.Windows.Media;
    
    namespace MyWpfApplication
    {
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void Button1_Click(object sender, RoutedEventArgs e)
            {
                this.TextBox1.Text = DateTime.Now.ToString();
                this.TextBlock1.Text = "8889" + "\t" + "2222" + "\r\n" + "555";
            }
    
            private void Slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
            {
                RotateTransform rt = new RotateTransform();
                rt.CenterX = 140; 
                rt.CenterY = 50;
                rt.Angle = e.NewValue;  
                this.Grid1.RenderTransform = rt;
            }
        }
    }
    


  8. MainWindow.xaml.csコードの解説
    (1)private void Button1_ClickはButton1.Clickイベントで呼び出されます。
    (2)this.TextBox1.Text = DateTime.Now.ToString();はTextBox1に日時を設定します。
    (3)this.TextBlock1.Text = "8889" + "\t" + "2222" + "\r\n" + "555";はTextBlock1に文字列を代入します。
    (4)private void Slider1_ValueChangedはSlider1.ValueChangedイベントで呼び出されます。
    (5)RotateTransform rt = new RotateTransform();は変数rtをRotateTransform()型で生成します。
    (6)rt.CenterX = 140は変数rtにX中心座標を代入します。
    (7)rt.Angle = e.NewValueは変数rtに回転角をスライダーの値に設定します。
    (8)this.Grid1.RenderTransform = rt;はGrid1のRenderTransformに変数rtの値を代入します。これにより、 階層3-1に含まれる要素全体が回転します。


    感想:
    (1)VBからC#への変換は簡単でした。







17章:10 行でズバリ!! レイアウトの作成 (C#)に行く。

トップページに戻る。