作成2013.04.18
サンプルコード「WPF Printing Overvie1」の中にWPFでのマルチウインドウのわかりやすい事例が見つかりました。
驚くほど簡単な記述です。
- 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」の動作確認は「デバッグ」_「デバッグ開始」で実行します。デバッグ機能を用いて動作確認を行います。
- MultiWindow.slnの実行
(1)「Microsoft Visual Basic 2010 Express」のデバッグ機能を使用します。
(2)「デバッグ」_「デバッグ開始」を選択します。
(3)画面が表示されます。
(4)NextPageボタンを押すとウインドウが変わります。
(5)クローズボックスで終了します。
- プロジェクトの構成
(1)XAMLコードとVBコードで構成されます。
(2)ソリューションエクスプローラーのプロジェクトを右クリックしてwindowを追加します。
- 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>
- MainWindow.xaml.vbの全コード
Class MainWindow
Private Sub Button_Click_1(sender As System.Object, e As System.Windows.RoutedEventArgs)
Dim win = New Window1()
win.Show()
Me.Close()
End Sub
End Class
- 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>
- Window1.xaml.vbの全コードの全コード
Public Class Window1
Private Sub Button_Click_1(sender As System.Object, e As System.Windows.RoutedEventArgs)
Dim win = New Window2()
win.Show()
Me.Close()
End Sub
- 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>
- Window2.xaml.vbの全コード
Public Class Window2
Private Sub Button_Click_1(sender As System.Object, e As System.Windows.RoutedEventArgs)
Dim win = New MainWindow()
win.Show()
Me.Close()
End Sub
End Class
感想:
(1)非常に簡単な記載でマルチウインドウの切り替えができます。