Compartir a través de


MenuAction (Clase)

Elemento de menú contextual, que representa una acción que se llevará a cabo en el diseñador.

Jerarquía de herencia

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

Espacio de nombres:  Microsoft.Windows.Design.Interaction
Ensamblado:  Microsoft.Windows.Design.Interaction (en Microsoft.Windows.Design.Interaction.dll)

Sintaxis

'Declaración
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

El tipo MenuAction expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público MenuAction Inicializa una nueva instancia de la clase MenuAction.

Arriba

Propiedades

  Nombre Descripción
Propiedad pública Checkable Obtiene o establece un valor que indica si el elemento de menú requiere una interfaz de usuario que muestre una casilla.
Propiedad pública Checked Obtiene o establece un valor que indica si el elemento de menú está activado.
Propiedad pública Command Obtiene el comando que representa la acción de menú.
Propiedad pública Context Obtiene el contexto de edición actual. (Se hereda de MenuBase).
Propiedad pública DisplayName Obtiene o establece el texto localizado que debe mostrarse para el elemento de menú. (Se hereda de MenuBase).
Propiedad pública Enabled Obtiene o establece un valor que indica si el elemento de acción del menú está disponible para el usuario.
Propiedad pública ImageUri Obtiene o establece la ruta de acceso a una imagen asociada a MenuAction.
Propiedad pública Name Obtiene o establece el identificador único del elemento de menú. (Se hereda de MenuBase).
Propiedad pública Visible Obtiene o establece un valor que indica si se muestra el elemento en el menú.

Arriba

Métodos

  Nombre Descripción
Método público Equals Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método protegido OnPropertyChanged Provoca el evento PropertyChanged. (Se hereda de MenuBase).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).

Arriba

Eventos

  Nombre Descripción
Evento público Execute Se produce cuando se ejecuta el elemento de menú.
Evento público PropertyChanged Se produce cuando ha cambiado una propiedad. (Se hereda de MenuBase).

Arriba

Comentarios

Utilice la clase MenuAction para definir un elemento de menú contextual en WPF Designer. 

Para mostrar los elementos del menú contextual, herede de la clase ContextMenuProvider y cree elementos MenuAction y un objeto MenuGroup asociado. Estos objetos de menú suelen crearse en el constructor de una clase derivada de PrimarySelectionContextMenuProvider, que muestra el menú contextual de la selección primaria.

Implemente la lógica para MenuAction en el controlador de eventos Execute.

La clase MenuAction es compatible con el sistema de comandos de WPF. Utilice la propiedad Command para invocar el objeto MenuAction mediante programación en lugar de hacerlo a través de la interfaz de usuario.

Ejemplos

En el siguiente ejemplo de código se muestra cómo configurar dos elementos MenuAction, que establecen la propiedad Background de un control en tiempo de diseño. Para obtener más información, vea Tutorial: Crear un proveedor de menús.

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

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

Microsoft.Windows.Design.Interaction (Espacio de nombres)

PrimarySelectionContextMenuProvider

MenuGroup

Otros recursos

Tutorial: Crear un proveedor de menús