MenuGroup 类

[本文档仅供预览,在以后的发行版中可能会发生更改。包含的空白主题用作占位符。]

表示一组菜单项。

继承层次结构

System.Object
  Microsoft.Windows.Design.Interaction.MenuBase
    Microsoft.Windows.Design.Interaction.MenuGroup

命名空间:  Microsoft.Windows.Design.Interaction
程序集:  Microsoft.Windows.Design.Interaction(在 Microsoft.Windows.Design.Interaction.dll 中)

语法

声明
Public Class MenuGroup _
    Inherits MenuBase
public class MenuGroup : MenuBase
public ref class MenuGroup : public MenuBase
type MenuGroup =  
    class
        inherit MenuBase
    end
public class MenuGroup extends MenuBase

MenuGroup 类型公开以下成员。

构造函数

  名称 说明
公共方法 MenuGroup(String) 初始化 MenuGroup 类的一个新实例,该类具有指定的组名。
公共方法 MenuGroup(String, String) 初始化具有指定组名称和显示名称的 MenuGroup 类的新实例。

页首

属性

  名称 说明
公共属性 Context 获取当前的编辑上下文。 (继承自 MenuBase。)
公共属性 DisplayName 获取或设置要为该菜单项显示的本地化文本。 (继承自 MenuBase。)
公共属性 HasDropDown 获取或设置一个值,该值表示 Items 中的菜单项是否可以添加下级菜单。
公共属性 Items 获取菜单项列表以在同一个菜单组中显示为同级。
公共属性 Name 获取或设置该菜单项的唯一标识符。 (继承自 MenuBase。)

页首

方法

  名称 说明
公共方法 Equals 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
受保护的方法 Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法 GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
受保护的方法 MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
受保护的方法 OnPropertyChanged 引发 PropertyChanged 事件。 (继承自 MenuBase。)
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)

页首

事件

  名称 说明
公共事件 PropertyChanged 在属性更改时发生。 (继承自 MenuBase。)

页首

备注

菜单项由 MenuAction 类表示。 合并组可具有菜单上或子菜单上的菜单项的集合,也称作“飞出”菜单。 设置 HasDropDown 属性来显示子菜单中的菜单项。

若要显示上下文菜单项,请从 PrimarySelectionContextMenuProvider 类中继承并创建 MenuAction 项和关联的 MenuGroup。

示例

以下代码示例演示如何设置两个 MenuAction 项并将其赋给一个 MenuGroup。 有关更多信息,请参见演练:创建菜单提供程序

' 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
// 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 命名空间

MenuAction

PrimarySelectionContextMenuProvider

其他资源

演练:创建菜单提供程序