次の方法で共有


タスク 2: ワークフロー デザイナーのホスティング

このトピックの内容は、Windows Workflow Foundation 4 に該当します。

このトピックでは、Windows Presentation Foundation (WPF) アプリケーションで Windows ワークフロー デザイナーのインスタンスをホストする手順について説明します。

この手順では、デザイナーを格納する Grid コントロールを構成し、既定の Sequence アクティビティを含む WorkflowDesigner のインスタンスをプログラムで作成します。さらに、デザイナーのメタデータを登録して、すべてのビルトイン アクティビティにデザイナー サポートを追加し、WPF アプリケーションでワークフロー デザイナーをホストします。

ワークフロー デザイナーをホストするには

  1. タスク 1: 新しい Windows Presentation Foundation アプリケーションの作成」で作成した HostingApplication プロジェクトを開きます。

  2. ワークフロー デザイナー が見やすくなるように、ウィンドウのサイズを調整します。ウィンドウのサイズを調整するには、デザイナーで [MainWindow] を選択し、F4 キーを押して [プロパティ] ウィンドウを表示して、レイアウト セクションで [幅] の値を「600」に設定し、[高さ] の値を「350」に設定します。

  3. デザイナーで [グリッド] パネルを選択し ([MainWindow] 内のボックスをクリックします)、[プロパティ] ウィンドウの一番上にある Name プロパティを「grid1」に設定して、グリッド名を設定します。

  4. [プロパティ] ウィンドウで、ColumnDefinitions プロパティの横の省略記号 ([...]) をクリックして [コレクション エディター] ダイアログ ボックスを開きます。

  5. [コレクション エディター] ダイアログ ボックスの [追加] ボタンを 3 回クリックして、3 つの列をレイアウトに挿入します。最初の列には [ツールボックス] が含まれ、2 番目の列はワークフロー デザイナーをホストし、3 番目の列はプロパティ インスペクターに使用されます。

  6. 中央の列の Width プロパティの値を「4*」に設定します。

  7. [OK] をクリックして、変更を保存します。次の XAML が MainWindow.xaml ファイルに追加されます。

    <Grid Name="grid1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="4*" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
    </Grid>
    
  8. ソリューション エクスプローラーで MainWindow.xaml を右クリックし、[コードの表示] を選択します。次の手順に従ってコードを修正します。

    1. 次の名前空間を追加します。

      using System.Activities;
      using System.Activities.Core.Presentation;
      using System.Activities.Presentation;
      using System.Activities.Presentation.Metadata;
      using System.Activities.Presentation.Toolbox;
      using System.Activities.Statements;
      using System.ComponentModel;
      
    2. WorkflowDesigner のインスタンスを保持するプライベート メンバー フィールドを宣言するには、次のコードを MainWindow クラスに追加します。

      public partial class MainWindow : Window
      {
          private WorkflowDesigner wd;
      
          public MainWindow()
          {
              InitializeComponent();
          }
      }
      
    3. 次の AddDesigner メソッドを MainWindow クラスに追加します。この実装で、WorkflowDesigner のインスタンスを作成し、これに Sequence アクティビティを追加して、grid1 グリッドの中央の列に配置します。

      private void AddDesigner()
      {
          //Create an instance of WorkflowDesigner class.
          this.wd = new WorkflowDesigner();
      
          //Place the designer canvas in the middle column of the grid.
          Grid.SetColumn(this.wd.View, 1);
      
          //Load a new Sequence as default.
          this.wd.Load(new Sequence());
      
          //Add the designer canvas to the grid.
          grid1.Children.Add(this.wd.View);
      }
      
    4. デザイナーのメタデータを登録して、すべてのビルトイン アクティビティにデザイナー サポートを追加します。こうすることにより、ツールボックスからワークフロー デザイナーの元の Sequence アクティビティに、アクティビティをドロップできるようになります。この操作を行うには、RegisterMetadata メソッドを MainWindow クラスに追加します。

      private void RegisterMetadata()
      {             
          DesignerMetadata dm = new DesignerMetadata();
          dm.Register();
      }
      

      登録アクティビティ デザイナー詳細情報、「方法: カスタム アクティビティ デザイナーを作成する」を参照してください。

    5. MainWindow クラス コンストラクターで、前に宣言したメソッドへの呼び出しを追加して、デザイナー サポートのメタデータを登録し、WorkflowDesigner を作成します。

      public MainWindow()
      {
          InitializeComponent();
      
          // Register the metadata
          RegisterMetadata();
      
      
          // Add the WFF Designer
          AddDesigner();
      }
      
      Dd489407.note(ja-jp,VS.100).gif注 :
      RegisterMetadata メソッドは、Sequence アクティビティを含むビルトイン アクティビティのデザイナーのメタデータを登録します。AddDesigner メソッドは Sequence アクティビティを使用するので、RegisterMetadata メソッドを先に呼び出す必要があります。

  9. F5 キーを押して、ソリューションをビルドおよび実行します。

  10. [ツールボックス][PropertyGrid] のサポートを、再ホストしたワークフロー デザイナーに追加する方法を学習するには、「タスク 3: ツールボックス ペインと PropertyGrid ペインの作成」を参照してください。

参照

処理手順

タスク 1: 新しい Windows Presentation Foundation アプリケーションの作成
タスク 3: ツールボックス ペインと PropertyGrid ペインの作成

その他のリソース

ワークフロー デザイナーのホスト変更