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

설명

참고

이 자료에서는 더 이상 사용되지 않는 형식과 네임스페이스에 대해 설명합니다. 자세한 내용은 Deprecated Types in Windows Workflow Foundation 4.5(Windows Workflow Foundation 4.5에서 사용되지 않는 형식)를 참조하세요.

WorkflowMenuCommandsCommandIDAddCommand 메서드를 사용하여 명령을 추가할 때 연결할 명령을 지정하는데 사용하는 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입니다. 이 필드는 읽기 전용입니다.

PageLayoutMenu

페이지 레이아웃 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

PageSetup

페이지 설정 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

PageUp

페이지 위로 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

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

확대/축소 100% 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

Zoom150Mode

확대/축소 150% 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

Zoom200Mode

확대/축소 200% 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

Zoom300Mode

확대/축소 300% 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

Zoom400Mode

확대/축소 400% 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

Zoom50Mode

확대/축소 50% 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

Zoom75Mode

확대/축소 75% 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

ZoomIn

확대 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

ZoomLevelCombo

확대/축소 수준 콤보 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

ZoomLevelListHandler

확대/축소 수준 목록 처리기 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

ZoomMenu

확대/축소 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

ZoomOut

축소 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상