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 Получает или задает значение, указывающее, требуется ли для пункта меню пользовательский интерфейс, отображающий флажок.
Открытое свойство 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.)

В начало страницы

Заметки

Класс MenuAction используется для определения пунктов контекстных меню в сред. Конструктор WPF. 

Чтобы отображать пункты контекстного меню, необходимо наследовать от класса ContextMenuProvider, создать элементы MenuAction и связанную группу MenuGroup. Эти объекты меню обычно создаются в конструкторе класса, производного от PrimarySelectionContextMenuProvider, который отображает контекстное меню главного выделения.

Логика действия MenuAction реализуется в обработчике событий Execute.

Класс 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);
}

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

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

PrimarySelectionContextMenuProvider

MenuGroup

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

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