VB のたまご

作成日: 2017/03/06, 更新日: 2017/03/06



Menu

    イメージ
  •  Menu は、画面上部に配置されて、アプリケーションの各処理を階層構造でまとめるためのコントロールです。 「ファイル」、「編集」、「表示」などですね。 とりあえずどういう風に動くのか見てみましょう。 以下サンプルです。「MenuWindow1」という画面で作成していますが、「MainWindow」に書いても構いません。

  • スポンサーリンク


    <Window x:Class="MenuWindow1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:z04_NormalControls"
            mc:Ignorable="d"
            Title="MenuWindow1" Height="300" Width="300">
        
        <DockPanel>
    
            <Menu DockPanel.Dock="Top">
                
                <MenuItem Header="ファイル(_F)">
                    <MenuItem Header="開く(_O)" />
                    <MenuItem Header="終了(_X)" />
                </MenuItem>
                
                <MenuItem Header="編集(_E)">
                    <MenuItem Header="切り取り(_X)" />
                    <MenuItem Header="コピー(_C)" />
                </MenuItem>
    
                <MenuItem Header="ヘルプ(_H)">
                    <MenuItem Header="バージョン(_A)" />
                </MenuItem>
    
            </Menu>
    
            <Button Content="button1" Margin="10" />
    
        </DockPanel>
        
    </Window>
    

  •  Menu は、大元の Menu コントロールと1つ1つの項目となる MenuItem で構成されています。 サブメニューを作成したい時は、MenuItem の子として MenuItem を追加して・・・の繰り返しで作成します。

  • スポンサーリンク


  •  続いて、メニュー項目をクリックしたときのイベント処理です。

  • <Window x:Class="MenuWindow2"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:z04_NormalControls"
            mc:Ignorable="d"
            Title="MenuWindow2" Height="300" Width="300">
    
        <DockPanel>
    
            <Menu DockPanel.Dock="Top">
    
                <MenuItem Header="ファイル(_F)">
                    <MenuItem Header="開く(_O)" Click="Menu_Click" />
                    <MenuItem Header="終了(_X)" />
                </MenuItem>
    
                <MenuItem Header="編集(_E)">
                    <MenuItem Header="切り取り(_X)" />
                    <MenuItem Header="コピー(_C)" />
                </MenuItem>
    
                <MenuItem Header="ヘルプ(_H)">
                    <MenuItem Header="バージョン(_A)" />
                </MenuItem>
    
            </Menu>
    
            <Button Content="button1" Margin="10" />
    
        </DockPanel>
    
    </Window>
    

    Public Class MenuWindow2
    
        Private Sub Menu_Click(sender As Object, e As RoutedEventArgs)
    
            MessageBox.Show("Hello, WPF!")
    
        End Sub
    
    End Class
    

  •  ここでは、「ファイル」→「開く」メニュー項目をクリックした際、メッセージボックスが表示されます。 ボタンと同じ扱いでできますね。