SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight/WPFで使える逆引きTips集

Silverlight/WPFで使える逆引きTips集
――メニュー機能

(10) MenuコントロールとContextMenuコントロール

  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード Menu_WPF_VB.zip (71.1 KB)
ダウンロード Menu_WPF_CS.zip (65.4 KB)

04.ショートカットキーを表示する

 メニューに 「Ctrl+N」などのショートカットキーを表示するには、MenuItemクラスInputGestureTextプロパティを使用します。

 ただし、InputGestureTextプロパティはショートカットキーを表示するだけであり、ユーザーが入力したキーに反応するわけではありません。コマンドをメニューに関連付ける方法については次のTipsで紹介します。

 下記はメニュー項目にショートカットキーを表示する例です。

ショートカットキーを表示する例
ショートカットキーを表示する例
XAMLの例
<Grid Name="Grid1">
    <Menu VerticalAlignment="Top">
        <MenuItem Header="ファイル(_F)" Name="MenuItem1">
            <MenuItem Header="新規作成(_N)" InputGestureText="Ctrl+N" />
            <MenuItem Header="保存(_A)" InputGestureText="Ctrl+S" />
            <Separator />
            <MenuItem Header="終了(_X)" />
        </MenuItem>
        <MenuItem Header="編集(_E)">
            <MenuItem Header="切り取り(_T)" InputGestureText="Ctrl+X" />
            <MenuItem Header="コピー(_C)"  InputGestureText="Ctrl+C" />
            <MenuItem Header="貼り付け(_P)"  InputGestureText="Ctrl+V" />
        </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 menuFileSeparator As New Separator()
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()


mainMenu.VerticalAlignment = VerticalAlignment.Top

'[ファイル]メニュー項目の作成
menuFile.Header = "ファイル(_F)"
menuFileNew.Header = "新規作成(_N)"
menuFileSave.Header = "保存(_A)"
menuFileEnd.Header = "終了(_X)"
'ショートカットキーの設定
menuFileNew.InputGestureText = "Ctrl+N"
menuFileSave.InputGestureText = "Ctrl+S"
'[ファイル]メニューに[新規作成][保存][終了]項目を追加
menuFile.Items.Add(menuFileNew)
menuFile.Items.Add(menuFileSave)
menuFile.Items.Add(menuFileSeparator)
menuFile.Items.Add(menuFileEnd)


'[編集]メニュー項目の作成
menuEdit.Header = "編集(_E)"
menuEditCut.Header = "切り取り(_T)"
menuEditCopy.Header = "コピー(_C)"
menuEditPaste.Header = "貼り付け(_P)"
'ショートカットキーの設定
menuEditCut.InputGestureText = "Ctrl+X"
menuEditCopy.InputGestureText = "Ctrl+C"
menuEditPaste.InputGestureText = "Ctrl+V"
'[編集]メニューに[切り取り][コピー][貼り付け]項目を追加
menuEdit.Items.Add(menuEditCut)
menuEdit.Items.Add(menuEditCopy)
menuEdit.Items.Add(menuEditPaste)

'メインメニューに[ファイル]メニューを追加
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();
Separator menuFileSeparator = new Separator();
MenuItem menuFileEnd = new MenuItem();
MenuItem menuEdit = new MenuItem();
MenuItem menuEditCopy = new MenuItem();
MenuItem menuEditCut = new MenuItem();
MenuItem menuEditPaste = new MenuItem();

mainMenu.VerticalAlignment = VerticalAlignment.Top;

// [ファイル]メニュー項目の作成
menuFile.Header = "ファイル(_F)";
menuFileNew.Header = "新規作成(_N)";
menuFileSave.Header = "保存(_A)";
menuFileEnd.Header = "終了(_X)";
// ショートカットキーの設定
menuFileNew.InputGestureText = "Ctrl+N";
menuFileSave.InputGestureText = "Ctrl+S";
// [ファイル]メニューに[新規作成][保存][終了]項目を追加
menuFile.Items.Add(menuFileNew);
menuFile.Items.Add(menuFileSave);
menuFile.Items.Add(menuFileSeparator);
menuFile.Items.Add(menuFileEnd);


// [編集]メニュー項目の作成
menuEdit.Header = "編集(_E)";
menuEditCut.Header = "切り取り(_T)";
menuEditCopy.Header = "コピー(_C)";
menuEditPaste.Header = "貼り付け(_P)";
// ショートカットキーの設定
menuEditCut.InputGestureText = "Ctrl+X";
menuEditCopy.InputGestureText = "Ctrl+C";
menuEditPaste.InputGestureText = "Ctrl+V";
// [編集]メニューに[切り取り][コピー][貼り付け]項目を追加
menuEdit.Items.Add(menuEditCut);
menuEdit.Items.Add(menuEditCopy);
menuEdit.Items.Add(menuEditPaste);

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

this.Grid1.Children.Add(mainMenu);
ポイント

 ショートカットキーを表示するにはMenuItemクラスのInputGestureTextプロパティを使用する。

次のページ
05.メニューにコマンドを設定する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Silverlight/WPFで使える逆引きTips集連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5769 2011/03/03 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング