Поделиться через


WorkflowMenuCommands Класс

Определение

Внимание!

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

Определяет набор полей класса CommandID, каждое из которых соответствует командной функции, предоставленной конструкторами рабочих процессов. Этот класс не наследуется.

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

Примеры

В следующем примере показано создание пользовательского объекта класса MenuCommandService. В этом примере контекстное меню создается при вызове метода ShowContextMenu. В методе GetSelectionMenuItems класс WorkflowMenuCommands используется для сопоставления команд меню, предоставленных конструктором рабочего процесса, и соответствующего им текста. После завершения этой операции с каждой командой связан обработчик событий, чтобы при выборе команды вызывалась соответствующая команда MenuCommand.

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, как показано в следующем примере.

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

Комментарии

Примечание

В этом материале обсуждаются устаревшие типы и пространства имен. Дополнительные сведения см. в статье о нерекомендуемых типах в Windows Workflow Foundation 4.5.

Класс WorkflowMenuCommands содержит множество полей класса CommandID, которые могут использоваться для задания команды, связываемой при добавлении команды с помощью метода AddCommand интерфейса IMenuCommandService.

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

WorkflowMenuCommands()
Устаревшие..

Инициализирует новый экземпляр класса WorkflowMenuCommands.

Поля

BreakpointActionMenu
Устаревшие..

Возвращает объект класса CommandID для меню действий точки останова. Это поле доступно только для чтения.

BreakpointConditionMenu
Устаревшие..

Возвращает объект класса CommandID для меню условия точки останова. Это поле доступно только для чтения.

BreakpointConstraintsMenu
Устаревшие..

Возвращает объект класса CommandID для меню ограничений точки останова. Это поле доступно только для чтения.

BreakpointHitCountMenu
Устаревшие..

Возвращает объект класса CommandID для меню количества обращений точки останова. Это поле доступно только для чтения.

BreakpointLocationMenu
Устаревшие..

Возвращает объект класса CommandID для меню расположения точки останова. Это поле доступно только для чтения.

ChangeTheme
Устаревшие..

Возвращает объект класса CommandID для меню изменения темы. Это поле доступно только для чтения.

ClearBreakpointsMenu
Устаревшие..

Объект класса CommandID может использоваться для доступа к меню очистки точек останова. Это поле доступно только для чтения.

Collapse
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню свертывания. Это поле доступно только для чтения.

CopyToClipboard
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню копирования. Это поле доступно только для чтения.

CreateTheme
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню создания темы. Это поле доступно только для чтения.

DebugCommandSetId
Устаревшие..

Предоставляет уникальный идентификатор для набора команд отладки. Это поле доступно только для чтения.

DebugStepBranchMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню разветвления этапа отладки. Это поле доступно только для чтения.

DebugStepInstanceMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню экземпляра разветвления этапа отладки. Это поле доступно только для чтения.

DebugWorkflowGroupId
Устаревшие..

Предоставляет уникальный идентификатор для группы меню рабочего процесса отладки. Это поле доступно только для чтения.

DefaultFilter
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню фильтра по умолчанию. Это поле доступно только для чтения.

DefaultPage
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню страницы по умолчанию. Это поле доступно только для чтения.

DesignerActionsMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню действий конструктора. Это поле доступно только для чтения.

DesignerProperties
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню свойств конструктора. Это поле доступно только для чтения.

Disable
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню отключения. Это поле доступно только для чтения.

Enable
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню включения. Это поле доступно только для чтения.

EnableBreakpointMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню включения точки останова. Это поле доступно только для чтения.

ExecutionStateMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню состояния выполнения. Это поле доступно только для чтения.

Expand
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню развертывания. Это поле доступно только для чтения.

FirstZoomCommand
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню первого увеличения. Это поле доступно только для чтения.

GotoDisassemblyMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню перехода к дизассемблированию. Это поле доступно только для чтения.

InsertBreakpointMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню вставки точки останова. Это поле доступно только для чтения.

InsertTracePointMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню вставки точки трассировки. Это поле доступно только для чтения.

LastZoomCommand
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню последнего увеличения. Это поле доступно только для чтения.

MenuGuid
Устаревшие..

Предоставляет уникальный идентификатор для меню. Это поле доступно только для чтения.

NewDataBreakpointMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню точки останова новых данных. Это поле доступно только для чтения.

NewFileTracePointMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню точки трассировки файла. Это поле доступно только для чтения.

PageDown
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню PageDown. Это поле доступно только для чтения.

PageLayoutMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню разметки страницы. Это поле доступно только для чтения.

PageSetup
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню настройки страницы. Это поле доступно только для чтения.

PageUp
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню PageUp. Это поле доступно только для чтения.

Pan
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню сдвига. Это поле доступно только для чтения.

PanMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню сдвига. Это поле доступно только для чтения.

Print
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню печати. Это поле доступно только для чтения.

PrintPreview
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню предварительного просмотра. Это поле доступно только для чтения.

PrintPreviewPage
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню страницы предварительного просмотра. Это поле доступно только для чтения.

RunToCursorMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню выполнения до позиции курсора. Это поле доступно только для чтения.

SaveAsImage
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню сохранения в виде изображения. Это поле доступно только для чтения.

SelectionMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню выбора. Это поле доступно только для чтения.

SetNextStatementMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню «Задать следующий оператор». Это поле доступно только для чтения.

ShowAll
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню «Показать все файлы». Это поле доступно только для чтения.

ShowNextStatementMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню «Показать следующий оператор». Это поле доступно только для чтения.

ToggleBreakpointMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню переключения точки останова. Это поле доступно только для чтения.

VerbGroupActions
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню действий группы команд. Это поле доступно только для чтения.

VerbGroupDesignerActions
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню действий конструктора группы команд. Это поле доступно только для чтения.

VerbGroupEdit
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню группы команд редактирования. Это поле доступно только для чтения.

VerbGroupGeneral
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню группы общих команд. Это поле доступно только для чтения.

VerbGroupMisc
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню группы прочих команд. Это поле доступно только для чтения.

VerbGroupOptions
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню группы команд параметров. Это поле доступно только для чтения.

VerbGroupView
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню группы команд просмотра. Это поле доступно только для чтения.

WorkflowCommandSetId
Устаревшие..

Предоставляет уникальный идентификатор для набора команд рабочего процесса. Это поле доступно только для чтения.

WorkflowToolBar
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню панели инструментов рабочего процесса. Это поле доступно только для чтения.

Zoom100Mode
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню масштаба 100%. Это поле доступно только для чтения.

Zoom150Mode
Устаревшие..

Объект CommandID, который может использоваться для доступа к меню масштаба 150 %. Это поле доступно только для чтения.

Zoom200Mode
Устаревшие..

Объект CommandID, который может использоваться для доступа к меню масштаба 200 %. Это поле доступно только для чтения.

Zoom300Mode
Устаревшие..

Объект CommandID, который может использоваться для доступа к меню масштаба 300 %. Это поле доступно только для чтения.

Zoom400Mode
Устаревшие..

Объект CommandID, который может использоваться для доступа к меню масштаба 400 %. Это поле доступно только для чтения.

Zoom50Mode
Устаревшие..

Объект CommandID, который может использоваться для доступа к меню масштаба 50 %. Это поле доступно только для чтения.

Zoom75Mode
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню масштаба 75%. Это поле доступно только для чтения.

ZoomIn
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню увеличения. Это поле доступно только для чтения.

ZoomLevelCombo
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню поля со списком степеней увеличения. Это поле доступно только для чтения.

ZoomLevelListHandler
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню обработчика списка степеней увеличения. Это поле доступно только для чтения.

ZoomMenu
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню масштабирования. Это поле доступно только для чтения.

ZoomOut
Устаревшие..

Объект класса CommandID, который может использоваться для доступа к меню уменьшения. Это поле доступно только для чтения.

Методы

Equals(Object)
Устаревшие..

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()
Устаревшие..

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()
Устаревшие..

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

(Унаследовано от Object)
MemberwiseClone()
Устаревшие..

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()
Устаревшие..

Возвращает строку, представляющую текущий объект.

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

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