Compartilhar via


WorkflowMenuCommands Classe

Definição

Cuidado

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

Define um conjunto de campos CommandID em que cada um corresponde a uma função de comando fornecida pelos designers de fluxo de trabalho. Essa classe não pode ser herdada.

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
Herança
WorkflowMenuCommands
Atributos

Exemplos

O exemplo a seguir demonstra como criar um personalizado MenuCommandService. Neste exemplo, um menu de contexto é criado quando o ShowContextMenu é chamado. GetSelectionMenuItems No método, a WorkflowMenuCommands classe é utilizada para associar os comandos de menu adequados fornecidos pelo designer de fluxo de trabalho ao texto correspondente. Quando isso é concluído, um manipulador de eventos é associado a cada comando para que, quando o comando for selecionado, o apropriado MenuCommand seja invocado.

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 esse serviço, chame o AddService método da LoaderHost propriedade em uma WorkflowDesignerLoader classe, conforme mostrado no exemplo a seguir.

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

Comentários

Observação

Este material discute tipos e namespaces obsoletos. Para obter mais informações, consulte Deprecated Types in Windows Workflow Foundation 4.5 (Tipos preteridos no Windows Workflow Foundation 4.5).

WorkflowMenuCommands contém um conjunto de CommandID campos que podem ser usados para especificar um comando a ser vinculado ao adicionar um comando usando o AddCommand método do IMenuCommandService.

Construtores

WorkflowMenuCommands()

Inicializa uma nova instância da classe WorkflowMenuCommands.

Campos

BreakpointActionMenu

Obtém o CommandID para o menu de ação de ponto de interrupção. Este campo é somente leitura.

BreakpointConditionMenu

Obtém o CommandID para o menu de condição de ponto de interrupção. Este campo é somente leitura.

BreakpointConstraintsMenu

Obtém o CommandID para o menu de restrições de ponto de interrupção. Este campo é somente leitura.

BreakpointHitCountMenu

Obtém o CommandID para o menu de contagem de ocorrências de ponto de interrupção. Este campo é somente leitura.

BreakpointLocationMenu

Obtém o CommandID para o menu de localização de ocorrências de ponto de interrupção. Este campo é somente leitura.

ChangeTheme

Obtém o CommandID para o menu de tema de alteração. Este campo é somente leitura.

ClearBreakpointsMenu

Um CommandID que pode ser usado para acessar o menu de desmarcar os pontos de interrupção. Este campo é somente leitura.

Collapse

Um CommandID que pode ser usado para acessar o menu de recolhimento. Este campo é somente leitura.

CopyToClipboard

Um CommandID que pode ser usado para acessar o menu de cópia. Este campo é somente leitura.

CreateTheme

Um CommandID que pode ser usado para acessar o menu de criação de tema. Este campo é somente leitura.

DebugCommandSetId

Fornece um identificador exclusivo para o conjunto de comandos de depuração. Este campo é somente leitura.

DebugStepBranchMenu

Um CommandID que pode ser usado para acessar o menu de depuração do branch de etapa. Este campo é somente leitura.

DebugStepInstanceMenu

Um CommandID que pode ser usado para acessar o menu de depuração de instância de etapa. Este campo é somente leitura.

DebugWorkflowGroupId

Fornece um identificador exclusivo para o grupo de fluxo de trabalho de depuração dos menus. Este campo é somente leitura.

DefaultFilter

Um CommandID que pode ser usado para acessar o menu de filtro padrão. Este campo é somente leitura.

DefaultPage

Um CommandID que pode ser usado para acessar o menu de página padrão. Este campo é somente leitura.

DesignerActionsMenu

Um CommandID que pode ser usado para acessar o menu de ações do designer. Este campo é somente leitura.

DesignerProperties

Um CommandID que pode ser usado para acessar o menu de propriedades do designer. Este campo é somente leitura.

Disable

Um CommandID que pode ser usado para acessar o menu de desabilitação. Este campo é somente leitura.

Enable

Um CommandID que pode ser usado para acessar o menu de habilitação. Este campo é somente leitura.

EnableBreakpointMenu

Um CommandID que pode ser usado para acessar o menu de habilitação de ponto de interrupção. Este campo é somente leitura.

ExecutionStateMenu

Um CommandID que pode ser usado para acessar o menu de estado de execução. Este campo é somente leitura.

Expand

Um CommandID que pode ser usado para acessar o menu de expansão. Este campo é somente leitura.

FirstZoomCommand

Um CommandID que pode ser usado para acessar o menu de zoom primeiro. Este campo é somente leitura.

GotoDisassemblyMenu

Um CommandID que pode ser usado para acessar o menu de acesso à desmontagem. Este campo é somente leitura.

InsertBreakpointMenu

Um CommandID que pode ser usado para acessar o menu de inserção de ponto de interrupção. Este campo é somente leitura.

InsertTracePointMenu

Um CommandID que pode ser usado para acessar o menu de inserção de tracepoint. Este campo é somente leitura.

LastZoomCommand

Um CommandID que pode ser usado para acessar o menu de último zoom. Este campo é somente leitura.

MenuGuid

Fornece um identificador exclusivo para o menu. Este campo é somente leitura.

NewDataBreakpointMenu

Um CommandID que pode ser usado para acessar o menu de ponto de interrupção de dados novos. Este campo é somente leitura.

NewFileTracePointMenu

Um CommandID que pode ser usado para acessar o menu de tracepoint de arquivo novo. Este campo é somente leitura.

PageDown

Um CommandID que pode ser usado para acessar o menu PageDown. Este campo é somente leitura.

PageLayoutMenu

Um CommandID que pode ser usado para acessar o menu de layout da página. Este campo é somente leitura.

PageSetup

Um CommandID que pode ser usado para acessar o menu de configuração de página. Este campo é somente leitura.

PageUp

Um CommandID que pode ser usado para acessar o menu PageUp. Este campo é somente leitura.

Pan

Um CommandID que pode ser usado para acessar o menu de panorâmica. Este campo é somente leitura.

PanMenu

Um CommandID que pode ser usado para acessar o menu de panorâmica. Este campo é somente leitura.

Print

Um CommandID que pode ser usado para acessar o menu de impressão. Este campo é somente leitura.

PrintPreview

Um CommandID que pode ser usado para acessar o menu de visualização de impressão. Este campo é somente leitura.

PrintPreviewPage

Um CommandID que pode ser usado para acessar o menu de página de visualização de impressão. Este campo é somente leitura.

RunToCursorMenu

Um CommandID que pode ser usado para acessar o menu de execução até o cursor. Este campo é somente leitura.

SaveAsImage

Um CommandID que pode ser usado para acessar o menu de salvar como imagem. Este campo é somente leitura.

SelectionMenu

Um CommandID que pode ser usado para acessar o menu de seleção. Este campo é somente leitura.

SetNextStatementMenu

Um CommandID que pode ser usado para acessar o menu de definir a próxima instrução. Este campo é somente leitura.

ShowAll

Um CommandID que pode ser usado para acessar o menu de mostrar tudo. Este campo é somente leitura.

ShowNextStatementMenu

Um CommandID que pode ser usado para acessar o menu de mostrar próxima instrução. Este campo é somente leitura.

ToggleBreakpointMenu

Um CommandID que pode ser usado para acessar o menu de alternância de ponto de interrupção. Este campo é somente leitura.

VerbGroupActions

Um CommandID que pode ser usado para acessar o menu de ações de grupo de verbos. Este campo é somente leitura.

VerbGroupDesignerActions

Um CommandID que pode ser usado para acessar o menu de ações de designer de grupo de verbos. Este campo é somente leitura.

VerbGroupEdit

Um CommandID que pode ser usado para acessar o menu de edição do grupo de verbos. Este campo é somente leitura.

VerbGroupGeneral

Um CommandID que pode ser usado para acessar o menu do grupo de verbos geral. Este campo é somente leitura.

VerbGroupMisc

Um CommandID que pode ser usado para acessar o menu do grupo de verbos diversos. Este campo é somente leitura.

VerbGroupOptions

Um CommandID que pode ser usado para acessar o menu do grupo de verbos de opções. Este campo é somente leitura.

VerbGroupView

Um CommandID que pode ser usado para acessar o menu de exibição do grupo de verbos. Este campo é somente leitura.

WorkflowCommandSetId

Fornece um identificador exclusivo para o conjunto de comandos de fluxo de trabalho. Este campo é somente leitura.

WorkflowToolBar

Um CommandID que pode ser usado para acessar o menu da barra de ferramentas de fluxo de trabalho. Este campo é somente leitura.

Zoom100Mode

Um CommandID que pode ser usado para acessar o menu de 100% de zoom. Este campo é somente leitura.

Zoom150Mode

Um CommandID que pode ser usado para acessar o menu de 150% de zoom. Este campo é somente leitura.

Zoom200Mode

Um CommandID que pode ser usado para acessar o menu de 200% de zoom. Este campo é somente leitura.

Zoom300Mode

Um CommandID que pode ser usado para acessar o menu de 300% de zoom. Este campo é somente leitura.

Zoom400Mode

Um CommandID que pode ser usado para acessar o menu de 400% de zoom. Este campo é somente leitura.

Zoom50Mode

Um CommandID que pode ser usado para acessar o menu de 50% de zoom. Este campo é somente leitura.

Zoom75Mode

Um CommandID que pode ser usado para acessar o menu de 75% de zoom. Este campo é somente leitura.

ZoomIn

Um CommandID que pode ser usado para acessar o menu de ampliação. Este campo é somente leitura.

ZoomLevelCombo

Um CommandID que pode ser usado para acessar o menu de combinação de nível de zoom. Este campo é somente leitura.

ZoomLevelListHandler

Um CommandID que pode ser usado para acessar o menu de manipulação de lista de nível de zoom. Este campo é somente leitura.

ZoomMenu

Um CommandID que pode ser usado para acessar o menu de zoom. Este campo é somente leitura.

ZoomOut

Um CommandID que pode ser usado para acessar o menu de redução. Este campo é somente leitura.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a