MenuItem コントロールは、MenuまたはContextMenu内で選択可能な個々の項目を表します。 MenuItem は、WPF アプリケーションのメニュー システムの基本的な構成要素であり、ユーザーがクリックまたは選択してアクションを実行する対話型要素を提供します。
メニューの使用例については、「 メニュー: Exmaples」を参照してください。
MenuItem と Menu の関係
Menuは、MenuItem オブジェクトのコンテナーとして機能し、次のような親子関係を確立します。
- Menu コントロールは、メニュー項目を整理するための全体的な構造とレイアウトを提供します。
- 各 MenuItem は、その構造体内の特定のコマンド、オプション、またはサブメニューを表します。
- MenuItems には、子として他の MenuItem を含めることができるので、奥行き無制限の階層サブメニューを作成できます。
- MenuItems は、明示的にオーバーライドされない限り、親 Menu からスタイルと動作のプロパティを継承します。
この階層関係により、単純なフラット メニューから深く入れ子になったサブメニュー システムまで、複雑なナビゲーション構造を作成できます。
MenuItem の型と動作
MenuItems では、いくつかの異なる種類の動作がサポートされています。
コマンド項目: クリックされたときに特定のコマンドを実行する MenuItems。 これらは通常、 ファイル > 開く 、 またはコピー > 編集などのアクションに使用されます。
チェック可能な項目: チェック ボックスと同様に、オンとオフを切り替えることができる MenuItems。 この動作を有効にするには、 IsCheckable プロパティを true に設定します。
区切り記号項目: メニュー内の Separator コントロールを使用して、関連する MenuItem を視覚的にグループ化します。
サブメニュー項目: 他の MenuItem を子として含む MenuItem。 クリックまたはホバーすると、サブメニューに追加のオプションが表示されます。
MenuItem のプロパティとイベント
MenuItem の主なプロパティは次のとおりです。
- Header: メニュー項目に表示されるコンテンツ。
- Command: 項目が選択されたときに実行するコマンド。
- IsCheckable: 項目をオンまたはオフにできるかどうかを指定します。
- IsChecked: チェック可能な項目の現在のチェック状態。
- InputGestureText: 項目のキーボード ショートカットを表すテキスト。
- Icon: メニュー項目のテキストと共に表示するアイコン。
重要なイベントには、 Click、 Checked、および Uncheckedが含まれます。
スタイルとテンプレート
既定の ControlTemplate を変更して、 MenuItem コントロールに一意の外観を与えることができます。 詳細については、「 スタイルとテンプレートとは」 および 「コントロールのテンプレートを作成する方法」を参照してください。
コンテンツ プロパティ
このコントロールでは、コンテンツ プロパティは定義されません。
部品
次の表に、 MenuItem コントロールの名前付きパーツを示します。
| 要素 | タイプ | Description |
|---|---|---|
| PART_Popup | Popup | サブメニュー項目を含むポップアップ。 |
ControlTemplateのMenuItemを作成する際に、テンプレートにはItemsPresenterがScrollViewer内に含まれている場合がある可能性があります。
ItemsPresenterは、MenuItem内の各項目を表示します。ScrollViewerはコントロール内をスクロールできるようにします。
ItemsPresenterがScrollViewerの直接の子でない場合は、ItemsPresenterItemsPresenter名前を指定する必要があります。
ビジュアル状態
次の表に、 MenuItem コントロールの表示状態を示します。
| VisualState 名称 | VisualStateGroupの名前 | Description |
|---|---|---|
| 有効 | 検証状態 | コントロールは有効であり、検証エラーはありません。 |
| 無効フォーカス | 検証状態 | コントロールに検証エラーがあり、キーボード フォーカスがあります。 |
| フォーカスが外れた無効状態 | 検証状態 | コントロールに検証エラーがありますが、キーボード フォーカスがありません。 |
こちらも参照ください
.NET Desktop feedback