次の方法で共有


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

MenuGroup

その他の技術情報

チュートリアル: メニュー プロバイダーの作成