Поделиться через


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 (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.Windows.Design.Interaction - пространство имен

MenuAction

PrimarySelectionContextMenuProvider

Другие ресурсы

Пошаговое руководство. Создание поставщика меню