Freigeben über


Aufgabe 2: Hosten des Workflow-Designers

Dieses Thema gilt für Windows Workflow Foundation 4.

In diesem Thema wird die Prozedur zum Hosten einer Instanz von Windows Workflow Designer in einer Windows Presentation Foundation (WPF)-Anwendung beschrieben.

Die Prozedur konfiguriert das Raster-Steuerelement, das den Designer enthält, erstellt programmgesteuert eine Instanz von WorkflowDesigner mit einer standardmäßigen Sequence-Aktivität, registriert die Designermetadaten, um Designerunterstützung für alle integrierten Aktivitäten zu bieten, und hostet den Workflow-Designer in der WPF-Anwendung.

So hosten Sie den Workflow-Designer

  1. Öffnen Sie das HostingApplication-Projekt, das Sie in Aufgabe 1: Erstellen einer neuen Windows Presentation Foundation-Anwendung erstellt haben.

  2. Passen Sie die Fenstergröße an, um die Verwendung des Workflow-Designer einfacher zu machen. Wählen Sie hierzu im Designer MainWindow, drücken Sie F4, um das Fenster Eigenschaften zu öffnen, und legen Sie im Abschnitt Layout in diesem Fenster die Breite auf 600 und die Höhe auf 350 fest.

  3. Definieren Sie den Rasternamen, indem Sie im Designer auf den Raster-Bereich klicken (das Feld innerhalb von MainWindow) und die Eigenschaft Name oben im Fenster Eigenschaften auf "grid1" festlegen.

  4. Klicken Sie im Fenster Eigenschaften neben der ColumnDefinitions-Eigenschaft auf die Auslassungspunkte (), um das Dialogfeld Auflistungs-Editor zu öffnen.

  5. Klicken Sie im Dialogfeld Auflistungs-Editor drei Mal auf die Schaltfläche Hinzufügen, um drei Spalten in das Layout einzufügen. Die erste Spalte enthält die Toolbox, die zweite Spalte den Workflow-Designer und die dritte Spalte die Eigenschaftenanalyse.

  6. Legen Sie die Width-Eigenschaft der mittleren Spalte auf den Wert "4*" fest.

  7. Klicken Sie auf OK, um die Änderungen zu speichern. Der Datei "MainWindow.xaml" wird der folgende XAML-Code hinzugefügt:

    <Grid Name="grid1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="4*" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
    </Grid>
    
  8. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf MainWindow.xaml, und wählen Sie Code anzeigen. Ändern Sie den Code, indem Sie folgende Schritte ausführen:

    1. Fügen Sie die folgenden Namespaces hinzu:

      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. Um ein privates Memberfeld zu deklarieren, das eine Instanz von WorkflowDesigner enthalten soll, fügen Sie der MainWindow-Klasse den folgenden Code hinzu.

      public partial class MainWindow : Window
      {
          private WorkflowDesigner wd;
      
          public MainWindow()
          {
              InitializeComponent();
          }
      }
      
    3. Fügen Sie die folgende AddDesigner-Methode zu der MainWindow-Klasse hinzu. Die Implementierung erstellt eine Instanz von WorkflowDesigner, fügt dieser eine Sequence-Aktivität hinzu und platziert sie in der mittleren Spalte im Raster "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. Registrieren Sie die Designer-Metadaten, um Designerunterstützung für alle integrierten Aktivitäten hinzuzufügen. Dies ermöglicht Ihnen, Aktivitäten aus der Toolbox auf der ursprünglichen Sequence-Aktivität im Workflow-Designer abzulegen. Fügen Sie hierzu der MainWindow-Klasse die RegisterMetadata-Methode hinzu.

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

      Weitere Informationen über zum Registrieren von Aktivitätsdesignern finden Sie unter Vorgehensweise: Erstellen eines benutzerdefinierten Aktivitätsdesigners.

    5. Fügen Sie im MainWindow-Klassenkonstruktor den zuvor deklarierten Methoden Aufrufe hinzu, um die Metadaten für die Designerunterstützung zu registrieren und das WorkflowDesigner-Objekt zu erstellen.

      public MainWindow()
      {
          InitializeComponent();
      
          // Register the metadata
          RegisterMetadata();
      
      
          // Add the WFF Designer
          AddDesigner();
      }
      
      Dd489407.note(de-de,VS.100).gifHinweis:
      Die RegisterMetadata-Methode registriert die Designer-Metadaten integrierter Aktivitäten, einschließlich der Sequence-Aktivität. Da die AddDesigner-Methode die Sequence-Aktivität verwendet, muss die RegisterMetadata-Methode zuerst aufgerufen werden.

  9. Drücken Sie F5, um die Projektmappe zu erstellen und auszuführen.

  10. In Aufgabe 3: Erstellen der Toolbox- und PropertyGrid-Bereiche erfahren Sie, wie Sie Ihrem neu gehosteten Workflow-Designer Toolbox- und PropertyGrid-Unterstützung hinzufügen.

Siehe auch

Aufgaben

Aufgabe 1: Erstellen einer neuen Windows Presentation Foundation-Anwendung
Aufgabe 3: Erstellen der Toolbox- und PropertyGrid-Bereiche

Weitere Ressourcen

Erneutes Hosten des Workflow-Designers