共用方式為


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 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
受保護的方法 OnPropertyChanged 引發 PropertyChanged 事件。 (繼承自 MenuBase)。
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

事件

  名稱 說明
公用事件 Execute 在執行功能表項目時發生。
公用事件 PropertyChanged 發生於屬性變更時。 (繼承自 MenuBase)。

回頁首

備註

使用 MenuAction 類別,可以定義 WPF 設計工具中的內容功能表項目。 

若要顯示內容功能表項目,請繼承自 ContextMenuProvider 類別,並建立 MenuAction 項目與相關聯的 MenuGroup。 這些功能表物件通常是在衍生自 PrimarySelectionContextMenuProvider (即在主要選取上顯示內容功能表) 之類別的建構函式 (Constructor) 中建立。

您可以在 Execute 事件處理常式中實作 MenuAction 的邏輯。

MenuAction 類別與 WPF 命令系統相容。 請使用 Command 屬性,以程式設計的方式叫用 MenuAction,而不透過使用者介面。

範例

下列程式碼範例說明如何設定兩個 MenuAction 項目,這兩個項目會在設計階段設定控制項的 Background 屬性。 如需詳細資訊,請參閱逐步解說:建立功能表提供者

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);
}

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

Microsoft.Windows.Design.Interaction 命名空間

PrimarySelectionContextMenuProvider

MenuGroup

其他資源

逐步解說:建立功能表提供者