次の方法で共有


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

注釈

注意

ここでは、廃止された型と名前空間について説明します。 詳細については、「.NET 4.5 での Windows Workflow Foundation の新機能」を参照してください。

WorkflowMenuCommands は、CommandIDAddCommand メソッドを使用してコマンドを追加するときに、リンクするコマンドの指定に使用できる 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
古い.

第 1 ズーム メニューにアクセスするために使用できる CommandID。 このフィールドは読み取り専用です。

GotoDisassemblyMenu
古い.

goto 逆アセンブリ メニューにアクセスするために使用できる CommandID。 このフィールドは読み取り専用です。

InsertBreakpointMenu
古い.

ブレークポイント挿入メニューにアクセスするために使用できる CommandID。 このフィールドは読み取り専用です。

InsertTracePointMenu
古い.

トレースポイント挿入メニューにアクセスするために使用できる CommandID。 このフィールドは読み取り専用です。

LastZoomCommand
古い.

最終ズーム メニューにアクセスするために使用できる CommandID。 このフィールドは読み取り専用です。

MenuGuid
古い.

メニューの一意の識別子を提供します。 このフィールドは読み取り専用です。

NewDataBreakpointMenu
古い.

新規データ ブレークポイント メニューにアクセスするために使用できる CommandID。 このフィールドは読み取り専用です。

NewFileTracePointMenu
古い.

ファイル新規トレースポイント メニューにアクセスするために使用できる CommandID。 このフィールドは読み取り専用です。

PageDown
古い.

PageDown メニューにアクセスするために使用できる CommandID。 このフィールドは読み取り専用です。

PageLayoutMenu
古い.

ページ レイアウト メニューにアクセスするために使用できる CommandID。 このフィールドは読み取り専用です。

PageSetup
古い.

ページ セットアップ メニューにアクセスするために使用できる CommandID。 このフィールドは読み取り専用です。

PageUp
古い.

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)

適用対象