WorkflowMenuCommands Класс

Определение

Предупреждение

Этот API устарел.

Определяет набор полей класса CommandID, каждое из которых соответствует командной функции, предоставленной конструкторами рабочих процессов.Defines a set of CommandID fields that each corresponds to a command function provided by the workflow designers. Этот класс не наследуется.This class cannot be inherited.

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
Public NotInheritable Class WorkflowMenuCommands
Inherits StandardCommands
Наследование
WorkflowMenuCommands
Атрибуты

Примеры

В следующем примере показано создание пользовательского объекта класса MenuCommandService.The following example demonstrates how to create a custom MenuCommandService. В этом примере контекстное меню создается при вызове метода ShowContextMenu.In this example, a context menu is created when the ShowContextMenu is called. В методе GetSelectionMenuItems класс WorkflowMenuCommands используется для сопоставления команд меню, предоставленных конструктором рабочего процесса, и соответствующего им текста.In the GetSelectionMenuItems method, the WorkflowMenuCommands class is utilized to associate the proper menu commands provided by the workflow designer with their corresponding text. После завершения этой операции с каждой командой связан обработчик событий, чтобы при выборе команды вызывалась соответствующая команда MenuCommand.When this is finished, an event handler is associated with each command so that when the command is selected, the appropriate MenuCommand is invoked.

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

Чтобы включить эту службу, вызовите метод AddService свойства LoaderHost класса WorkflowDesignerLoader, как показано в следующем примере.To enable this service, call the AddService method of the LoaderHost property in a WorkflowDesignerLoader class as shown in the following example.

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

Комментарии

Примечание

В этом материале обсуждаются устаревшие типы и пространства имен.This material discusses types and namespaces that are obsolete. Дополнительные сведения см. в статье о нерекомендуемых типах в Windows Workflow Foundation 4.5.For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

Класс WorkflowMenuCommands содержит множество полей класса CommandID, которые могут использоваться для задания команды, связываемой при добавлении команды с помощью метода AddCommand интерфейса IMenuCommandService.WorkflowMenuCommands contains a set of CommandID fields that can be used to specify a command to link when adding a command using the AddCommand method of the IMenuCommandService.

Конструкторы

WorkflowMenuCommands()

Инициализирует новый экземпляр класса WorkflowMenuCommands.Initializes a new instance of the WorkflowMenuCommands class.

Поля

BreakpointActionMenu

Возвращает объект класса CommandID для меню действий точки останова.Gets the CommandID for the breakpoint action menu. Это поле доступно только для чтения.This field is read-only.

BreakpointConditionMenu

Возвращает объект класса CommandID для меню условия точки останова.Gets the CommandID for the breakpoint condition menu. Это поле доступно только для чтения.This field is read-only.

BreakpointConstraintsMenu

Возвращает объект класса CommandID для меню ограничений точки останова.Gets the CommandID for the breakpoint constraints menu. Это поле доступно только для чтения.This field is read-only.

BreakpointHitCountMenu

Возвращает объект класса CommandID для меню количества обращений точки останова.Gets the CommandID for the breakpoint hit count menu. Это поле доступно только для чтения.This field is read-only.

BreakpointLocationMenu

Возвращает объект класса CommandID для меню расположения точки останова.Gets the CommandID for the breakpoint location menu. Это поле доступно только для чтения.This field is read-only.

ChangeTheme

Возвращает объект класса CommandID для меню изменения темы.Gets the CommandID for the change theme menu. Это поле доступно только для чтения.This field is read-only.

ClearBreakpointsMenu

Объект класса CommandID может использоваться для доступа к меню очистки точек останова.A CommandID that can be used to access the clear breakpoints menu. Это поле доступно только для чтения.This field is read-only.

Collapse

Объект класса CommandID, который может использоваться для доступа к меню свертывания.A CommandID that can be used to access the collapse menu. Это поле доступно только для чтения.This field is read-only.

CopyToClipboard

Объект класса CommandID, который может использоваться для доступа к меню копирования.A CommandID that can be used to access the copy menu. Это поле доступно только для чтения.This field is read-only.

CreateTheme

Объект класса CommandID, который может использоваться для доступа к меню создания темы.A CommandID that can be used to access the create theme menu. Это поле доступно только для чтения.This field is read-only.

DebugCommandSetId

Предоставляет уникальный идентификатор для набора команд отладки.Provides a unique identifier for the debug command set. Это поле доступно только для чтения.This field is read-only.

DebugStepBranchMenu

Объект класса CommandID, который может использоваться для доступа к меню разветвления этапа отладки.A CommandID that can be used to access the debug step branch menu. Это поле доступно только для чтения.This field is read-only.

DebugStepInstanceMenu

Объект класса CommandID, который может использоваться для доступа к меню экземпляра разветвления этапа отладки.A CommandID that can be used to access the debug step instance menu. Это поле доступно только для чтения.This field is read-only.

DebugWorkflowGroupId

Предоставляет уникальный идентификатор для группы меню рабочего процесса отладки.Provides a unique identifier for the debug workflow group of menus. Это поле доступно только для чтения.This field is read-only.

DefaultFilter

Объект класса CommandID, который может использоваться для доступа к меню фильтра по умолчанию.A CommandID that can be used to access the default filter menu. Это поле доступно только для чтения.This field is read-only.

DefaultPage

Объект класса CommandID, который может использоваться для доступа к меню страницы по умолчанию.A CommandID that can be used to access the default page menu. Это поле доступно только для чтения.This field is read-only.

DesignerActionsMenu

Объект класса CommandID, который может использоваться для доступа к меню действий конструктора.A CommandID that can be used to access the designer actions menu. Это поле доступно только для чтения.This field is read-only.

DesignerProperties

Объект класса CommandID, который может использоваться для доступа к меню свойств конструктора.A CommandID that can be used to access the designer properties menu. Это поле доступно только для чтения.This field is read-only.

Disable

Объект класса CommandID, который может использоваться для доступа к меню отключения.A CommandID that can be used to access the disable menu. Это поле доступно только для чтения.This field is read-only.

Enable

Объект класса CommandID, который может использоваться для доступа к меню включения.A CommandID that can be used to access the enable menu. Это поле доступно только для чтения.This field is read-only.

EnableBreakpointMenu

Объект класса CommandID, который может использоваться для доступа к меню включения точки останова.A CommandID that can be used to access the enable breakpoint menu. Это поле доступно только для чтения.This field is read-only.

ExecutionStateMenu

Объект класса CommandID, который может использоваться для доступа к меню состояния выполнения.A CommandID that can be used to access the execution state menu. Это поле доступно только для чтения.This field is read-only.

Expand

Объект класса CommandID, который может использоваться для доступа к меню развертывания.A CommandID that can be used to access the expand menu. Это поле доступно только для чтения.This field is read-only.

FirstZoomCommand

Объект класса CommandID, который может использоваться для доступа к меню первого увеличения.A CommandID that can be used to access the zoom first menu. Это поле доступно только для чтения.This field is read-only.

GotoDisassemblyMenu

Объект класса CommandID, который может использоваться для доступа к меню перехода к дизассемблированию.A CommandID that can be used to access the goto disassembly menu. Это поле доступно только для чтения.This field is read-only.

InsertBreakpointMenu

Объект класса CommandID, который может использоваться для доступа к меню вставки точки останова.A CommandID that can be used to access the insert breakpoint menu. Это поле доступно только для чтения.This field is read-only.

InsertTracePointMenu

Объект класса CommandID, который может использоваться для доступа к меню вставки точки трассировки.A CommandID that can be used to access the insert tracepoint menu. Это поле доступно только для чтения.This field is read-only.

LastZoomCommand

Объект класса CommandID, который может использоваться для доступа к меню последнего увеличения.A CommandID that can be used to access the zoom last menu. Это поле доступно только для чтения.This field is read-only.

MenuGuid

Предоставляет уникальный идентификатор для меню.Provides a unique identifier for the menu. Это поле доступно только для чтения.This field is read-only.

NewDataBreakpointMenu

Объект класса CommandID, который может использоваться для доступа к меню точки останова новых данных.A CommandID that can be used to access the new data breakpoint menu. Это поле доступно только для чтения.This field is read-only.

NewFileTracePointMenu

Объект класса CommandID, который может использоваться для доступа к меню точки трассировки файла.A CommandID that can be used to access the new file tracepoint menu. Это поле доступно только для чтения.This field is read-only.

PageDown

Объект класса CommandID, который может использоваться для доступа к меню PageDown.A CommandID that can be used to access the PageDown menu. Это поле доступно только для чтения.This field is read-only.

PageLayoutMenu

Объект класса CommandID, который может использоваться для доступа к меню разметки страницы.A CommandID that can be used to access the page layout menu. Это поле доступно только для чтения.This field is read-only.

PageSetup

Объект класса CommandID, который может использоваться для доступа к меню настройки страницы.A CommandID that can be used to access the page setup menu. Это поле доступно только для чтения.This field is read-only.

PageUp

Объект класса CommandID, который может использоваться для доступа к меню PageUp.A CommandID that can be used to access the PageUp menu. Это поле доступно только для чтения.This field is read-only.

Pan

Объект класса CommandID, который может использоваться для доступа к меню сдвига.A CommandID that can be used to access the pan menu. Это поле доступно только для чтения.This field is read-only.

PanMenu

Объект класса CommandID, который может использоваться для доступа к меню сдвига.A CommandID that can be used to access the pan menu. Это поле доступно только для чтения.This field is read-only.

Print

Объект класса CommandID, который может использоваться для доступа к меню печати.A CommandID that can be used to access the print menu. Это поле доступно только для чтения.This field is read-only.

PrintPreview

Объект класса CommandID, который может использоваться для доступа к меню предварительного просмотра.A CommandID that can be used to access the print preview menu. Это поле доступно только для чтения.This field is read-only.

PrintPreviewPage

Объект класса CommandID, который может использоваться для доступа к меню страницы предварительного просмотра.A CommandID that can be used to access the print preview page menu. Это поле доступно только для чтения.This field is read-only.

RunToCursorMenu

Объект класса CommandID, который может использоваться для доступа к меню выполнения до позиции курсора.A CommandID that can be used to access the run to cursor menu. Это поле доступно только для чтения.This field is read-only.

SaveAsImage

Объект класса CommandID, который может использоваться для доступа к меню сохранения в виде изображения.A CommandID that can be used to access the save as image menu. Это поле доступно только для чтения.This field is read-only.

SelectionMenu

Объект класса CommandID, который может использоваться для доступа к меню выбора.A CommandID that can be used to access the selection menu. Это поле доступно только для чтения.This field is read-only.

SetNextStatementMenu

Объект класса CommandID, который может использоваться для доступа к меню «Задать следующий оператор».A CommandID that can be used to access the set next statement menu. Это поле доступно только для чтения.This field is read-only.

ShowAll

Объект класса CommandID, который может использоваться для доступа к меню «Показать все файлы».A CommandID that can be used to access the show all menu. Это поле доступно только для чтения.This field is read-only.

ShowNextStatementMenu

Объект класса CommandID, который может использоваться для доступа к меню «Показать следующий оператор».A CommandID that can be used to access the show next statement menu. Это поле доступно только для чтения.This field is read-only.

ToggleBreakpointMenu

Объект класса CommandID, который может использоваться для доступа к меню переключения точки останова.A CommandID that can be used to access the toggle breakpoint menu. Это поле доступно только для чтения.This field is read-only.

VerbGroupActions

Объект класса CommandID, который может использоваться для доступа к меню действий группы команд.A CommandID that can be used to access the verb group actions menu. Это поле доступно только для чтения.This field is read-only.

VerbGroupDesignerActions

Объект класса CommandID, который может использоваться для доступа к меню действий конструктора группы команд.A CommandID that can be used to access the verb group designer actions menu. Это поле доступно только для чтения.This field is read-only.

VerbGroupEdit

Объект класса CommandID, который может использоваться для доступа к меню группы команд редактирования.A CommandID that can be used to access the edit verb group menu. Это поле доступно только для чтения.This field is read-only.

VerbGroupGeneral

Объект класса CommandID, который может использоваться для доступа к меню группы общих команд.A CommandID that can be used to access the general verb group menu. Это поле доступно только для чтения.This field is read-only.

VerbGroupMisc

Объект класса CommandID, который может использоваться для доступа к меню группы прочих команд.A CommandID that can be used to access the miscellaneous verb group menu. Это поле доступно только для чтения.This field is read-only.

VerbGroupOptions

Объект класса CommandID, который может использоваться для доступа к меню группы команд параметров.A CommandID that can be used to access the options verb group menu. Это поле доступно только для чтения.This field is read-only.

VerbGroupView

Объект класса CommandID, который может использоваться для доступа к меню группы команд просмотра.A CommandID that can be used to access the view verb group menu. Это поле доступно только для чтения.This field is read-only.

WorkflowCommandSetId

Предоставляет уникальный идентификатор для набора команд рабочего процесса.Provides a unique identifier for the workflow command set. Это поле доступно только для чтения.This field is read-only.

WorkflowToolBar

Объект класса CommandID, который может использоваться для доступа к меню панели инструментов рабочего процесса.A CommandID that can be used to access the workflow toolbar menu. Это поле доступно только для чтения.This field is read-only.

Zoom100Mode

Объект класса CommandID, который может использоваться для доступа к меню масштаба 100%.A CommandID that can be used to access the zoom 100% menu. Это поле доступно только для чтения.This field is read-only.

Zoom150Mode

Объект CommandID, который может использоваться для доступа к меню масштаба 150 %.A CommandID that can be used to access the zoom 150% menu. Это поле доступно только для чтения.This field is read-only.

Zoom200Mode

Объект CommandID, который может использоваться для доступа к меню масштаба 200 %.A CommandID that can be used to access the zoom 200% menu. Это поле доступно только для чтения.This field is read-only.

Zoom300Mode

Объект CommandID, который может использоваться для доступа к меню масштаба 300 %.A CommandID that can be used to access the zoom 300% menu. Это поле доступно только для чтения.This field is read-only.

Zoom400Mode

Объект CommandID, который может использоваться для доступа к меню масштаба 400 %.A CommandID that can be used to access the zoom 400% menu. Это поле доступно только для чтения.This field is read-only.

Zoom50Mode

Объект CommandID, который может использоваться для доступа к меню масштаба 50 %.A CommandID that can be used to access the zoom 50% menu. Это поле доступно только для чтения.This field is read-only.

Zoom75Mode

Объект класса CommandID, который может использоваться для доступа к меню масштаба 75%.A CommandID that can be used to access the zoom 75% menu. Это поле доступно только для чтения.This field is read-only.

ZoomIn

Объект класса CommandID, который может использоваться для доступа к меню увеличения.A CommandID that can be used to access the zoom in menu. Это поле доступно только для чтения.This field is read-only.

ZoomLevelCombo

Объект класса CommandID, который может использоваться для доступа к меню поля со списком степеней увеличения.A CommandID that can be used to access the zoom level combo menu. Это поле доступно только для чтения.This field is read-only.

ZoomLevelListHandler

Объект класса CommandID, который может использоваться для доступа к меню обработчика списка степеней увеличения.A CommandID that can be used to access the zoom level list handler menu. Это поле доступно только для чтения.This field is read-only.

ZoomMenu

Объект класса CommandID, который может использоваться для доступа к меню масштабирования.A CommandID that can be used to access the zoom menu. Это поле доступно только для чтения.This field is read-only.

ZoomOut

Объект класса CommandID, который может использоваться для доступа к меню уменьшения.A CommandID that can be used to access the zoom out menu. Это поле доступно только для чтения.This field is read-only.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к