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

    作成2013.04.30

     サンプルコード「WPF Printing Overvie1」の中にWPFでのマルチウインドウのわかりやすい事例が見つかりました。
     驚くほど簡単な記述です。

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


  2. MultiWindow.slnの実行
    (1)「Microsoft Visual Basic 2010 Express」のデバッグ機能を使用します。
    (2)「デバッグ」_「デバッグ開始」を選択します。
    (3)画面が表示されます。
    (4)NextPageボタンを押すとウインドウが変わります。
    (5)クローズボックスで終了します。


  3. プロジェクトの構成
    (1)XAMLコードとVBコードで構成されます。
    (2)ソリューションエクスプローラーのプロジェクトを右クリックしてwindowを追加します。


  4. 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="350" Width="525">
        <Grid>
            <Label Content="表紙" HorizontalAlignment="Left" Margin="30,10,0,0" VerticalAlignment="Top"/>
            <Button Content="NextPage" HorizontalAlignment="Left" Margin="97,14,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>
        </Grid>
    </Window>
    


  5. MainWindow.xaml.csの全コード
    using System.Windows;
    
    namespace MultiWindow
    {
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                var win = new Window1();
                win.Show();
                this.Close();
            }
        }
    }
    


  6. Window1.xamlの全コードの全コード
    <Window x:Class="Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
        <Grid>
            <Label Content="1ページ" HorizontalAlignment="Left" Margin="30,10,0,0" VerticalAlignment="Top"/>
            <Button Content="NextPage" HorizontalAlignment="Left" Margin="97,14,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>
        </Grid>
    </Window>
    


  7. Window1.xaml.csの全コードの全コード
    using System.Windows;
    
    namespace MultiWindow
    {
        public partial class Window1 : Window
        {
            public Window1()
            {
                InitializeComponent();
            }
    
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                var win = new Window2();
                win.Show();
                this.Close();
            }
        }
    }
    


  8. Window2.xamlの全コード
    <Window x:Class="Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window2" Height="300" Width="300">
        <Grid>
            <Label Content="2ページ" HorizontalAlignment="Left" Margin="30,10,0,0" VerticalAlignment="Top"/>
            <Button Content="NextPage" HorizontalAlignment="Left" Margin="97,14,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>
        </Grid>
    </Window>
    


  9. Window2.xaml.csの全コード
    using System.Windows;
    
    namespace MultiWindow
    {
        public partial class Window2 : Window
        {
            public Window2()
            {
                InitializeComponent();
            }
    
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                var win = new MainWindow();
                win.Show();
                this.Close();
            }
        }
    }
    


    感想:
    (1)非常に簡単な記載でマルチウインドウの切り替えができます。







45章:DataGridView クラス (C#) に行く。

トップページに戻る。