WorkflowMenuCommands 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
주의
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
- 상속
- 특성
예제
다음 예제에서는 사용자 지정 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에서 사용되지 않는 형식)를 참조하세요.
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입니다. 이 필드는 읽기 전용입니다. |
PageLayoutMenu |
페이지 레이아웃 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다. |
PageSetup |
페이지 설정 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다. |
PageUp |
페이지 위로 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다. |
Pan |
팬 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다. |
PanMenu |
팬 메뉴에 액세스하는 데 사용하는 CommandID입니다. 이 필드는 읽기 전용입니다. |
인쇄 메뉴에 액세스하는 데 사용하는 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) |