[WPF] メニューを作成する

スポンサーリンク

本TipsはWPFのみとなります。あらかじめご了承ください。

メニューを作成するには Menu クラスを使用し、メニューの要素を作成するにはMenuItem クラスを使用します。

MenuItemを入れ子にするとサブメニューを作成することができます。

またメニューに表示する項目名は Header プロパティを使用して設定します。

下記はメニューを作成する例です。

XAMLだけでも作成することができますが、コードからメニューを作成する例も併せて記します。

メニューを作成する例

 

XAMLの例

<Grid Name="Grid1">
    <Menu VerticalAlignment="Top">
        <MenuItem Header="ファイル">
            <MenuItem Header="終了" />
            <MenuItem Header="保存" />
            <MenuItem Header="終了" />
        </MenuItem>
        <MenuItem Header="編集">
            <MenuItem Header="コピー" />
            <MenuItem Header="切り取り" />
            <MenuItem Header="貼り付け" />
        </MenuItem>
    </Menu>
</Grid>

VBの例

XAMLではなくコードでメニューを作成する場合は下記のようにします

Dim mainMenu As New Controls.Menu
Dim menuFile As New MenuItem()
Dim menuFileNew As New MenuItem()
Dim menuFileSave As New MenuItem()
Dim menuFileEnd As New MenuItem
Dim menuEdit As New MenuItem
Dim menuEditCopy As New MenuItem
Dim menuEditCut As New MenuItem
Dim menuEditPaste As New MenuItem
Dim menuEditSearchReplace As New MenuItem
Dim menuEditSearch As New MenuItem
Dim menuEditReplace As New MenuItem

mainMenu.VerticalAlignment = VerticalAlignment.Top

'[ファイル]メニュー項目の作成
menuFile.Header = "ファイル"
menuFileNew.Header = "新規作成"
menuFileSave.Header = "保存"
menuFileEnd.Header = "終了"
'[ファイル]メニューに[新規作成][保存][終了]項目を追加
menuFile.Items.Add(menuFileNew)
menuFile.Items.Add(menuFileSave)
menuFile.Items.Add(menuFileEnd)


'[編集]メニュー項目の作成
menuEdit.Header = "編集"
menuEditCut.Header = "切り取り"
menuEditCopy.Header = "コピー"
menuEditPaste.Header = "貼り付け"
menuEditSearchReplace.Header = "検索と置換"
menuEditSearch.Header = "検索"
menuEditReplace.Header = "置換"
'[編集]メニューに[切り取り][コピー][貼り付け][検索と置換]項目を追加
menuEdit.Items.Add(menuEditCut)
menuEdit.Items.Add(menuEditCopy)
menuEdit.Items.Add(menuEditPaste)
menuEditSearchReplace.Items.Add(menuEditSearch)
menuEditSearchReplace.Items.Add(menuEditReplace)
menuEdit.Items.Add(menuEditSearchReplace)

'メインメニューに[ファイル]メニューを追加
mainMenu.Items.Add(menuFile)
'メインメニューに[編集]メニューを追加
mainMenu.Items.Add(menuEdit)

Me.Grid1.Children.Add(mainMenu)

C#の例

// XAMLではなくコードでメニューを作成する場合は下記のようにします

System.Windows.Controls.Menu mainMenu =
    new System.Windows.Controls.Menu();
MenuItem menuFile = new MenuItem();
MenuItem menuFileNew = new MenuItem();
MenuItem menuFileSave = new MenuItem();
MenuItem menuFileEnd = new MenuItem();
MenuItem menuEdit = new MenuItem();
MenuItem menuEditCopy = new MenuItem();
MenuItem menuEditCut = new MenuItem();
MenuItem menuEditPaste = new MenuItem();
MenuItem menuEditSearchReplace = new MenuItem();
MenuItem menuEditSearch = new MenuItem();
MenuItem menuEditReplace = new MenuItem();

mainMenu.VerticalAlignment = VerticalAlignment.Top;

// [ファイル]メニュー項目の作成
menuFile.Header = "ファイル";
menuFileNew.Header = "新規作成";
menuFileSave.Header = "保存";
menuFileEnd.Header = "終了";
// [ファイル]メニューに[新規作成][保存][終了]項目を追加
menuFile.Items.Add(menuFileNew);
menuFile.Items.Add(menuFileSave);
menuFile.Items.Add(menuFileEnd);


// [編集]メニュー項目の作成
menuEdit.Header = "編集";
menuEditCut.Header = "切り取り";
menuEditCopy.Header = "コピー";
menuEditPaste.Header = "貼り付け";
// [編集]メニューに[切り取り][コピー][貼り付け][検索と置換]項目を追加
menuEdit.Items.Add(menuEditCut);
menuEdit.Items.Add(menuEditCopy);
menuEdit.Items.Add(menuEditPaste);
menuEditSearchReplace.Items.Add(menuEditSearch);
menuEditSearchReplace.Items.Add(menuEditReplace);
menuEdit.Items.Add(menuEditSearchReplace);

// メインメニューに[ファイル]メニューを追加
mainMenu.Items.Add(menuFile);
// メインメニューに[編集]メニューを追加
mainMenu.Items.Add(menuEdit);

this.Grid1.Children.Add(mainMenu);
タイトルとURLをコピーしました