MenuAction クラス
デザイナーで実行されるアクションを表すコンテキスト メニュー項目です。
継承階層
System.Object
Microsoft.Windows.Design.Interaction.MenuBase
Microsoft.Windows.Design.Interaction.MenuAction
名前空間: Microsoft.Windows.Design.Interaction
アセンブリ: Microsoft.Windows.Design.Interaction (Microsoft.Windows.Design.Interaction.dll 内)
構文
'宣言
Public Class MenuAction _
Inherits MenuBase
public class MenuAction : MenuBase
public ref class MenuAction : public MenuBase
type MenuAction =
class
inherit MenuBase
end
public class MenuAction extends MenuBase
MenuAction 型で公開されるメンバーは以下のとおりです。
コンストラクター
名前 | 説明 | |
---|---|---|
MenuAction | MenuAction クラスの新しいインスタンスを初期化します。 |
このページのトップへ
プロパティ
名前 | 説明 | |
---|---|---|
Checkable | メニュー項目で、チェック ボックスを表示するユーザー インターフェイス (UI) が必要とされるかどうかを示す値を取得または設定します。 | |
Checked | メニュー項目がチェックされているかどうかを示す値を取得または設定します。 | |
Command | メニュー アクションを表すコマンドを取得します。 | |
Context | 現在の編集コンテキストを取得します。 (MenuBase から継承されます。) | |
DisplayName | メニュー項目に表示するローカライズされたテキストを取得または設定します。 (MenuBase から継承されます。) | |
Enabled | メニュー アクション項目がユーザーにとって使用可能かどうかを示す値を取得または設定します。 | |
ImageUri | MenuAction に関連付けられているイメージのパスを取得または設定します。 | |
Name | メニュー項目の一意の識別子を取得または設定します。 (MenuBase から継承されます。) | |
Visible | 項目がメニューに表示されるかどうかを示す値を取得または設定します。 |
このページのトップへ
メソッド
名前 | 説明 | |
---|---|---|
Equals | 指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。) | |
Finalize | オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。 (Object から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) | |
OnPropertyChanged | PropertyChanged イベントを発生させます。 (MenuBase から継承されます。) | |
ToString | 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。) |
このページのトップへ
イベント
名前 | 説明 | |
---|---|---|
Execute | メニュー項目が実行されると発生します。 | |
PropertyChanged | プロパティが変更されると発生します。 (MenuBase から継承されます。) |
このページのトップへ
解説
WPF デザイナーでコンテキスト メニュー項目を定義するには、MenuAction クラスを使用します。
コンテキスト メニュー項目を表示するには、ContextMenuProvider クラスから継承し、MenuAction 項目および関連する MenuGroup を作成します。 通常、これらのメニュー オブジェクトは、主要選択のコンテキスト メニューを表示する PrimarySelectionContextMenuProvider から派生したクラスのコンストラクターで作成します。
Executeイベント ハンドラーに、MenuAction のための独自のロジックを実装します。
MenuAction クラスは、WPF のコマンド システムと互換性があります。 ユーザー インターフェイスを介してではなく、Command プロパティを使用して MenuAction をプログラムによって起動します。
例
デザイン時にコントロールの Background プロパティを設定する 2 つの MenuAction 項目をセットアップする方法を次のコード例に示します。 詳細については、「チュートリアル: メニュー プロバイダーの作成」を参照してください。
Private setBackgroundToBlueMenuAction As MenuAction
Private clearBackgroundMenuAction As MenuAction
...
' The provider's constructor sets up the MenuAction objects
' and the the MenuGroup which holds them.
Public Sub New()
' Set up the MenuAction which sets the control's
' background to Blue.
setBackgroundToBlueMenuAction = New MenuAction("Blue")
setBackgroundToBlueMenuAction.Checkable = True
AddHandler setBackgroundToBlueMenuAction.Execute, AddressOf SetBackgroundToBlue_Execute
' Set up the MenuAction which sets the control's
' background to its default value.
clearBackgroundMenuAction = New MenuAction("Cleared")
clearBackgroundMenuAction.Checkable = True
AddHandler clearBackgroundMenuAction.Execute, AddressOf ClearBackground_Execute
' Set up the MenuGroup which holds the MenuAction items.
Dim backgroundFlyoutGroup As New MenuGroup("SetBackgroundsGroup", "Set Background")
' If HasDropDown is false, the group appears inline,
' instead of as a flyout. Set to true.
backgroundFlyoutGroup.HasDropDown = True
backgroundFlyoutGroup.Items.Add(setBackgroundToBlueMenuAction)
backgroundFlyoutGroup.Items.Add(clearBackgroundMenuAction)
Me.Items.Add(backgroundFlyoutGroup)
' The UpdateItemStatus event is raised immediately before
' this provider shows its tabs, which provides the opportunity
' to set states.
AddHandler UpdateItemStatus, AddressOf CustomContextMenuProvider_UpdateItemStatus
End Sub
private MenuAction setBackgroundToBlueMenuAction;
private MenuAction clearBackgroundMenuAction;
...
// The provider's constructor sets up the MenuAction objects
// and the the MenuGroup which holds them.
public CustomContextMenuProvider()
{
// Set up the MenuAction which sets the control's
// background to Blue.
setBackgroundToBlueMenuAction = new MenuAction("Blue");
setBackgroundToBlueMenuAction.Checkable = true;
setBackgroundToBlueMenuAction.Execute +=
new EventHandler<MenuActionEventArgs>(SetBackgroundToBlue_Execute);
// Set up the MenuAction which sets the control's
// background to its default value.
clearBackgroundMenuAction = new MenuAction("Cleared");
clearBackgroundMenuAction.Checkable = true;
clearBackgroundMenuAction.Execute +=
new EventHandler<MenuActionEventArgs>(ClearBackground_Execute);
// Set up the MenuGroup which holds the MenuAction items.
MenuGroup backgroundFlyoutGroup =
new MenuGroup("SetBackgroundsGroup", "Set Background");
// If HasDropDown is false, the group appears inline,
// instead of as a flyout. Set to true.
backgroundFlyoutGroup.HasDropDown = true;
backgroundFlyoutGroup.Items.Add(setBackgroundToBlueMenuAction);
backgroundFlyoutGroup.Items.Add(clearBackgroundMenuAction);
this.Items.Add(backgroundFlyoutGroup);
// The UpdateItemStatus event is raised immediately before
// this provider shows its tabs, which provides the opportunity
// to set states.
UpdateItemStatus +=
new EventHandler<MenuActionEventArgs>(
CustomContextMenuProvider_UpdateItemStatus);
}
スレッド セーフ
この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
参照
参照
Microsoft.Windows.Design.Interaction 名前空間
PrimarySelectionContextMenuProvider