C#プログラミング

【C#】メニュー(Menu)を使う方法【WPF】

メニュー表示方法の紹介記事 C#

今回はC#(WPF)アプリにメニューを付ける方法をサンプルコード付きで紹介します。使用頻度が高い操作はメニューバーに配置するユーザビリティが向上します。またGUIのスペースを圧迫しないメリットもあります。

C#でメニュー(Menu)を実装する方法

メニューの見た目

以下のような見た目です。

メニューの見た目

アプリでよく見かける見た目とおおよそ同じ感じです。
画像はデフォルトですが、背景・文字の色は変更できます。

メニューを使うメリット

メリット以下の通り。

  • よく使う機能をまとめて分かりやす場所に配置できる。
  • 画面上スペースを圧迫しない。
  • 後からボタンの追加しやすい

サンプルコード

以下のようなメニューを作成しました。

メニュー操作の様子
「編集」をクリックして3つの選択が表示された状態

XAMLは以下の通り。

<Grid>
    <StackPanel Orientation="Vertical" >
        <!--Menu-->
        <Menu>
            <MenuItem Header="ファイル(_F)">
                <MenuItem Header="保存" Click="Save_Click" />
                <MenuItem Header="閉じる" Click="Close_Click" />
            </MenuItem>
            <MenuItem Header="編集">
                <MenuItem Header="編集 1" />
                <MenuItem Header="編集 2" />
                <MenuItem Header="編集 3" />
            </MenuItem>
        </Menu>
    </StackPanel>
</Grid>

クリックイベントは以下のようにすれば処理できます。

//保存
private void Save_Click(object sender, RoutedEventArgs e)
{
    Console.WriteLine("メニュー操作:保存");
}
//閉じる
private void Close_Click(object sneder, RoutedEventArgs e)
{
    Console.WriteLine("メニュー操作:閉じる");
    Close();
}

MVVMでやりたい場合は、XAMLで「Click」ではなく「Command」でを使えばできます。
(MVVMプロジェクトを作りたい方はこちらの記事を参照)

メニューは、普通にボタンの配置を増やすよりも省スペースなうえ、追加もしやすいのが魅力ですね。

以下はWPF(XAML)を学びたい方におススメの本。

コメント

タイトルとURLをコピーしました