Compartir a través de


WorkflowMenuCommands Clase

Definición

Precaución

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

Define un conjunto de campos CommandID, cada uno de los cuales corresponde a una función de comando proporcionada por los diseñadores de flujo de trabajo. Esta clase no puede heredarse.

public ref class WorkflowMenuCommands sealed : System::ComponentModel::Design::StandardCommands
public sealed class WorkflowMenuCommands : System.ComponentModel.Design.StandardCommands
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public sealed class WorkflowMenuCommands : System.ComponentModel.Design.StandardCommands
type WorkflowMenuCommands = class
    inherit StandardCommands
[<System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")>]
type WorkflowMenuCommands = class
    inherit StandardCommands
Public NotInheritable Class WorkflowMenuCommands
Inherits StandardCommands
Herencia
WorkflowMenuCommands
Atributos

Ejemplos

En el siguiente ejemplo se muestra cómo crear un MenuCommandService personalizado. En este ejemplo, se crea un menú contextual cuando se llama a ShowContextMenu. En el método GetSelectionMenuItems, la clase WorkflowMenuCommands se utiliza para asociar los comandos de menú apropiados proporcionados por el diseñador de flujo de trabajo con su texto correspondiente. Una vez finalizado, se asocia un controlador de eventos a cada comando de modo que cuando se seleccione, se invoque el MenuCommand adecuado.

internal sealed class WorkflowMenuCommandService : MenuCommandService
{
    public WorkflowMenuCommandService(IServiceProvider serviceProvider)
        : base(serviceProvider)
    {
    }

    public override void ShowContextMenu(CommandID menuID, int x, int y)
    {
        if (menuID == WorkflowMenuCommands.SelectionMenu)
        {
            ContextMenu contextMenu = new ContextMenu();

            foreach (DesignerVerb verb in Verbs)
            {
                MenuItem menuItem = new MenuItem(verb.Text, new EventHandler(OnMenuClicked));
                menuItem.Tag = verb;
                contextMenu.MenuItems.Add(menuItem);
            }

            MenuItem[] items = GetSelectionMenuItems();
            if (items.Length > 0)
            {
                contextMenu.MenuItems.Add(new MenuItem("-"));
                foreach (MenuItem item in items)
                    contextMenu.MenuItems.Add(item);
            }

            WorkflowView workflowView = GetService(typeof(WorkflowView)) as WorkflowView;
            if (workflowView != null)
                contextMenu.Show(workflowView, workflowView.PointToClient(new Point(x, y)));
        }
    }

    private MenuItem[] GetSelectionMenuItems()
    {
        List<MenuItem> menuItems = new List<MenuItem>();

        bool addMenuItems = true;
        ISelectionService selectionService = GetService(typeof(ISelectionService)) as ISelectionService;
        if (selectionService != null)
        {
            foreach (object obj in selectionService.GetSelectedComponents())
            {
                if (!(obj is Activity))
                {
                    addMenuItems = false;
                    break;
                }
            }
        }

        if (addMenuItems)
        {
            Dictionary<CommandID, string> selectionCommands = new Dictionary<CommandID, string>();
            selectionCommands.Add(WorkflowMenuCommands.Cut, "Cut");
            selectionCommands.Add(WorkflowMenuCommands.Copy, "Copy");
            selectionCommands.Add(WorkflowMenuCommands.Paste, "Paste");
            selectionCommands.Add(WorkflowMenuCommands.Delete, "Delete");
            selectionCommands.Add(WorkflowMenuCommands.Collapse, "Collapse");
            selectionCommands.Add(WorkflowMenuCommands.Expand, "Expand");
            selectionCommands.Add(WorkflowMenuCommands.Disable, "Disable");
            selectionCommands.Add(WorkflowMenuCommands.Enable, "Enable");

            foreach (CommandID id in selectionCommands.Keys)
            {
                MenuCommand command = FindCommand(id);
                if (command != null)
                {
                    MenuItem menuItem = new MenuItem(selectionCommands[id], new EventHandler(OnMenuClicked));
                    menuItem.Tag = command;
                    menuItems.Add(menuItem);
                }
            }
        }

        return menuItems.ToArray();
    }

    private void OnMenuClicked(object sender, EventArgs e)
    {
        MenuItem menuItem = sender as MenuItem;
        if (menuItem != null && menuItem.Tag is MenuCommand)
        {
            MenuCommand command = menuItem.Tag as MenuCommand;
            command.Invoke();
        }
    }
}
Friend NotInheritable Class WorkflowMenuCommandService
    Inherits MenuCommandService
    Public Sub New(ByVal serviceProvider As IServiceProvider)
        MyBase.new(serviceProvider)
    End Sub
    Public Overrides Sub ShowContextMenu(ByVal menuID As CommandID, ByVal x As Integer, ByVal y As Integer)

        If menuID.ID = WorkflowMenuCommands.SelectionMenu.ID Then
            Dim contextMenu As New ContextMenu()

            For Each verb As DesignerVerb In Verbs
                Dim MenuItem As New MenuItem(verb.Text, AddressOf OnMenuClicked)
                MenuItem.Tag = verb
                contextMenu.MenuItems.Add(MenuItem)
            Next

            Dim items As MenuItem() = GetSelectionMenuItems()
            If (items.Length > 0) Then

                contextMenu.MenuItems.Add(New MenuItem("-"))
                For Each item As MenuItem In items
                    contextMenu.MenuItems.Add(item)
                Next

                Dim workflowView As WorkflowView = CType(GetService(GetType(WorkflowView)), WorkflowView)
                If workflowView Is Nothing Then
                    contextMenu.Show(workflowView, workflowView.PointToClient(New Point(x, y)))
                End If
            End If
        End If
    End Sub

    Private Function GetSelectionMenuItems() As MenuItem()

        Dim menuItems As New List(Of MenuItem)()

        Dim addMenuItems As Boolean = True
        Dim selectionService As ISelectionService = CType(GetService(GetType(ISelectionService)), ISelectionService)
        If selectionService IsNot Nothing Then

            For Each obj As Object In selectionService.GetSelectedComponents()
                If Not TypeOf obj Is Activity Then
                    addMenuItems = False
                    Exit For
                End If
            Next
        End If


        If (addMenuItems) Then

            Dim selectionCommands As New Dictionary(Of CommandID, String)()
            selectionCommands.Add(WorkflowMenuCommands.Cut, "Cut")
            selectionCommands.Add(WorkflowMenuCommands.Copy, "Copy")
            selectionCommands.Add(WorkflowMenuCommands.Paste, "Paste")
            selectionCommands.Add(WorkflowMenuCommands.Delete, "Delete")
            selectionCommands.Add(WorkflowMenuCommands.Collapse, "Collapse")
            selectionCommands.Add(WorkflowMenuCommands.Expand, "Expand")
            selectionCommands.Add(WorkflowMenuCommands.Disable, "Disable")
            selectionCommands.Add(WorkflowMenuCommands.Enable, "Enable")

            For Each id As CommandID In selectionCommands.Keys

                Dim command As MenuCommand = FindCommand(id)
                If command IsNot Nothing Then
                    Dim menuItem As New MenuItem(selectionCommands(id), AddressOf OnMenuClicked)
                    menuItem.Tag = command
                    menuItems.Add(menuItem)
                End If
            Next
        End If

        Return menuItems.ToArray()
    End Function

    Private Sub OnMenuClicked(ByVal sender As Object, ByVal e As EventArgs)

        Dim menuItem As MenuItem = CType(sender, MenuItem)
        If menuItem IsNot Nothing And TypeOf menuItem.Tag Is MenuCommand Then
            Dim command As MenuCommand = CType(menuItem.Tag, MenuCommand)
            command.Invoke()
        End If
    End Sub
End Class

Para habilitar este servicio, llame al método AddService de la propiedad LoaderHost en una clase WorkflowDesignerLoader como se muestra en el ejemplo siguiente.

protected override void Initialize()
{
    base.Initialize();

    IDesignerLoaderHost host = this.LoaderHost;
    if (host != null)
    {
        host.RemoveService(typeof(IIdentifierCreationService));
        host.AddService(typeof(IIdentifierCreationService), new IdentifierCreationService(host));
        host.AddService(typeof(IMenuCommandService), new WorkflowMenuCommandService(host));
        host.AddService(typeof(IToolboxService), new Toolbox(host));
        TypeProvider typeProvider = new TypeProvider(host);
        typeProvider.AddAssemblyReference(typeof(string).Assembly.Location);
        host.AddService(typeof(ITypeProvider), typeProvider, true);
        host.AddService(typeof(IEventBindingService), new EventBindingService());
    }
}
Protected Overrides Sub Initialize()
    MyBase.Initialize()

    Dim host As IDesignerLoaderHost = Me.LoaderHost
    If host IsNot Nothing Then
        host.RemoveService(GetType(IIdentifierCreationService))
        host.AddService(GetType(IIdentifierCreationService), New IdentifierCreationService(host))
        host.AddService(GetType(IMenuCommandService), New WorkflowMenuCommandService(host))
        host.AddService(GetType(IToolboxService), New Toolbox(host))
        Dim typeProvider As New TypeProvider(host)
        typeProvider.AddAssemblyReference(GetType(String).Assembly.Location)
        host.AddService(GetType(ITypeProvider), typeProvider, True)
        host.AddService(GetType(IEventBindingService), New EventBindingService())
    End If
End Sub

Comentarios

Nota

En esta documentación se describen los tipos y espacios de nombres que están obsoletos. Para obtener más información, vea Tipos en desuso en Windows Workflow Foundation 4.5.

WorkflowMenuCommands contiene un conjunto de campos CommandID que se pueden usar para especificar un comando para vincular cuando se agrega un comando mediante el método AddCommand de IMenuCommandService.

Constructores

WorkflowMenuCommands()

Inicializa una nueva instancia de la clase WorkflowMenuCommands.

Campos

BreakpointActionMenu

Obtiene CommandID para el menú de acción de punto de interrupción. Este campo es de solo lectura.

BreakpointConditionMenu

Obtiene CommandID para el menú de condición de punto de interrupción. Este campo es de solo lectura.

BreakpointConstraintsMenu

Obtiene CommandID para el menú de restricciones de punto de interrupción. Este campo es de solo lectura.

BreakpointHitCountMenu

Obtiene CommandID para el menú de número de llamadas de punto de interrupción. Este campo es de solo lectura.

BreakpointLocationMenu

Obtiene CommandID para el menú de ubicación de punto de interrupción. Este campo es de solo lectura.

ChangeTheme

Obtiene CommandID para el menú de cambio de tema. Este campo es de solo lectura.

ClearBreakpointsMenu

CommandID que se puede utilizar para acceder al menú de desactivación de puntos de interrupción. Este campo es de solo lectura.

Collapse

CommandID que se puede utilizar para tener acceso al menú de contracción. Este campo es de solo lectura.

CopyToClipboard

CommandID que se puede utilizar para tener acceso al menú de copiar. Este campo es de solo lectura.

CreateTheme

CommandID que se puede utilizar para tener acceso al menú de creación de tema. Este campo es de solo lectura.

DebugCommandSetId

Proporciona un identificador único para el conjunto de comandos de depuración. Este campo es de solo lectura.

DebugStepBranchMenu

CommandID que se puede utilizar para acceder al menú de bifurcación de paso de depuración. Este campo es de solo lectura.

DebugStepInstanceMenu

CommandID que se puede utilizar para acceder al menú de instancia de paso de depuración. Este campo es de solo lectura.

DebugWorkflowGroupId

Proporciona un identificador único para el grupo de flujo de trabajo de depuración de los menús. Este campo es de solo lectura.

DefaultFilter

CommandID que se puede utilizar para tener acceso al menú de filtro predeterminado. Este campo es de solo lectura.

DefaultPage

CommandID que se puede utilizar para tener acceso al menú de página predeterminada. Este campo es de solo lectura.

DesignerActionsMenu

CommandID que se puede utilizar para acceder al menú de acciones del diseñador. Este campo es de solo lectura.

DesignerProperties

CommandID que se puede utilizar para tener acceso al menú de propiedades del diseñador. Este campo es de solo lectura.

Disable

CommandID que se puede utilizar para tener acceso al menú de deshabilitar. Este campo es de solo lectura.

Enable

CommandID que se puede utilizar para tener acceso al menú de habilitar. Este campo es de solo lectura.

EnableBreakpointMenu

CommandID que se puede utilizar para acceder al menú de habilitación del punto de interrupción. Este campo es de solo lectura.

ExecutionStateMenu

CommandID que se puede utilizar para acceder al menú de estado de ejecución. Este campo es de solo lectura.

Expand

CommandID que se puede utilizar para tener acceso al menú de expansión. Este campo es de solo lectura.

FirstZoomCommand

CommandID que se puede utilizar para tener acceso al menú de primer zoom. Este campo es de solo lectura.

GotoDisassemblyMenu

CommandID que se puede utilizar para acceder al menú de ir a desensamblado. Este campo es de solo lectura.

InsertBreakpointMenu

CommandID que se puede utilizar para acceder al menú de inserción del punto de interrupción. Este campo es de solo lectura.

InsertTracePointMenu

CommandID que se puede utilizar para acceder al menú de inserción del punto de seguimiento. Este campo es de solo lectura.

LastZoomCommand

CommandID que se puede utilizar para tener acceso al menú de último zoom. Este campo es de solo lectura.

MenuGuid

Proporciona un identificador único el menú. Este campo es de solo lectura.

NewDataBreakpointMenu

CommandID que se puede utilizar para acceder al menú de punto de interrupción con nuevos datos. Este campo es de solo lectura.

NewFileTracePointMenu

CommandID que se puede utilizar para acceder al menú de nuevo archivo de punto de seguimiento. Este campo es de solo lectura.

PageDown

CommandID que se puede utilizar para tener acceso al menú AvPág. Este campo es de solo lectura.

PageLayoutMenu

CommandID que se puede utilizar para tener acceso al menú de diseño de página. Este campo es de solo lectura.

PageSetup

CommandID que se puede utilizar para tener acceso al menú de configuración de página. Este campo es de solo lectura.

PageUp

CommandID que se puede utilizar para tener acceso al menú RePág. Este campo es de solo lectura.

Pan

CommandID que se puede utilizar para tener acceso al menú panorámico. Este campo es de solo lectura.

PanMenu

CommandID que se puede utilizar para tener acceso al menú panorámico. Este campo es de solo lectura.

Print

CommandID que se puede utilizar para tener acceso al menú de impresión. Este campo es de solo lectura.

PrintPreview

CommandID que se puede utilizar para tener acceso al menú de vista previa de impresión. Este campo es de solo lectura.

PrintPreviewPage

CommandID que se puede utilizar para tener acceso al menú de página de vista previa de impresión. Este campo es de solo lectura.

RunToCursorMenu

CommandID que se puede utilizar para tener acceso al menú de ir a cursor. Este campo es de solo lectura.

SaveAsImage

CommandID que se puede utilizar para acceder al menú de guardar como una imagen. Este campo es de solo lectura.

SelectionMenu

CommandID que se puede utilizar para tener acceso al menú de selección. Este campo es de solo lectura.

SetNextStatementMenu

CommandID que puede utilizarse para tener acceso al menú de establecer instrucción siguiente. Este campo es de solo lectura.

ShowAll

CommandID que se puede utilizar para tener acceso al menú de mostrar todo. Este campo es de solo lectura.

ShowNextStatementMenu

CommandID que puede utilizarse para tener acceso al menú de mostrar instrucción siguiente. Este campo es de solo lectura.

ToggleBreakpointMenu

CommandID que se puede utilizar para acceder al menú de basculación del punto de interrupción. Este campo es de solo lectura.

VerbGroupActions

CommandID que se puede utilizar para acceder al menú de acciones de grupo de verbos. Este campo es de solo lectura.

VerbGroupDesignerActions

CommandID que se puede utilizar para acceder al menú de acciones de diseñador de grupo de verbos. Este campo es de solo lectura.

VerbGroupEdit

CommandID que se puede utilizar para acceder al menú de edición de grupo de verbos. Este campo es de solo lectura.

VerbGroupGeneral

CommandID que se puede utilizar para acceder al menú de grupo general de verbos. Este campo es de solo lectura.

VerbGroupMisc

CommandID que se puede utilizar para acceder al menú de otro grupo de verbos. Este campo es de solo lectura.

VerbGroupOptions

CommandID que se puede utilizar para acceder al menú de grupo de verbos de opciones. Este campo es de solo lectura.

VerbGroupView

CommandID que se puede utilizar para acceder al menú de visualización de grupo de verbos. Este campo es de solo lectura.

WorkflowCommandSetId

Proporciona un identificador único para el conjunto de comandos del flujo de trabajo. Este campo es de solo lectura.

WorkflowToolBar

CommandID que se puede utilizar para acceder al menú de barras de herramientas del flujo de trabajo. Este campo es de solo lectura.

Zoom100Mode

CommandID que se puede utilizar para tener acceso al menú de zoom 100%. Este campo es de solo lectura.

Zoom150Mode

CommandID que se puede usar para tener acceso al menú de zoom 150%. Este campo es de solo lectura.

Zoom200Mode

CommandID que se puede usar para tener acceso al menú de zoom 200%. Este campo es de solo lectura.

Zoom300Mode

CommandID que se puede usar para tener acceso al menú de zoom 300%. Este campo es de solo lectura.

Zoom400Mode

CommandID que se puede usar para tener acceso al menú de zoom 400%. Este campo es de solo lectura.

Zoom50Mode

CommandID que se puede usar para tener acceso al menú de zoom 50%. Este campo es de solo lectura.

Zoom75Mode

CommandID que se puede utilizar para tener acceso al menú de zoom 75%. Este campo es de solo lectura.

ZoomIn

CommandID que se puede utilizar para tener acceso al menú de zoom hacia delante. Este campo es de solo lectura.

ZoomLevelCombo

CommandID que se puede utilizar para tener acceso al menú combinado de nivel de zoom. Este campo es de solo lectura.

ZoomLevelListHandler

CommandID que se puede utilizar para tener acceso al menú del controlador de lista del nivel de zoom. Este campo es de solo lectura.

ZoomMenu

CommandID que se puede utilizar para tener acceso al menú de zoom. Este campo es de solo lectura.

ZoomOut

CommandID que se puede utilizar para tener acceso al menú de zoom hacia atrás. Este campo es de solo lectura.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a