Partager via


Tâche 2 : héberger le Workflow Designer

Cette rubrique s'applique à Windows Workflow Foundation 4.

Cette rubrique décrit la procédure d'hébergement d'une instance du Windows Workflow Designer dans une application Windows Presentation Foundation (WPF).

La procédure configure le contrôle Grid qui contient le concepteur, crée par programmation une instance du WorkflowDesigner qui contient une activité Sequence par défaut, enregistre les métadonnées du concepteur pour fournir la prise en charge du concepteur pour toutes les activités intégrées, et héberge le Concepteur de workflow dans l'application WPF.

Pour héberger le concepteur de workflow

  1. Ouvrez le projet HostingApplication que vous avez créé dans Tâche 1 : créer une nouvelle application Windows Presentation Foundation..

  2. Pour faciliter l'utilisation du Concepteur de workflow, ajustez la taille de la fenêtre. Pour ce faire, dans le concepteur, sélectionnez MainWindow, appuyez sur F4 pour afficher la fenêtre Propriétés, puis, dans la section Disposition, affectez la valeur 600 à la Largeur et la valeur 350 à la Hauteur.

  3. Définissez le nom de la grille en sélectionnant le panneau Grid dans le concepteur (cliquez sur la zone à l'intérieur de MainWindow) et affectant la valeur « grid1 » à la propriété Name située en haut de la fenêtre Propriétés.

  4. Pour ouvrir la boîte de dialogue Éditeur de collection, dans la fenêtre Propriétés, cliquez sur les points de suspension () situés en regard de la propriété ColumnDefinitions.

  5. Pour insérer trois colonnes dans la disposition, dans la boîte de dialogue Éditeur de collection, cliquez sur le bouton Ajouter. La première colonne contiendra la Boîte à outils, la deuxième colonne hébergera le Concepteur de workflow et la troisième colonne sera utilisée pour l'inspecteur de propriétés.

  6. Affectez la valeur 4* à la propriété Width de la colonne centrale.

  7. Pour enregistrer les modifications, cliquez sur OK. Le XAML suivant est ajouté à votre fichier MainWindow.xaml :

    <Grid Name="grid1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="4*" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
    </Grid>
    
  8. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur MainWindow.xaml et sélectionnez Afficher le code. Modifiez le code en procédant comme suit :

    1. Ajoutez les espaces de noms suivants :

      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. Pour déclarer un champ de membre privé devant contenir une instance de WorkflowDesigner, ajoutez le code suivant à la classe MainWindow.

      public partial class MainWindow : Window
      {
          private WorkflowDesigner wd;
      
          public MainWindow()
          {
              InitializeComponent();
          }
      }
      
    3. Ajoutez la méthode AddDesigner suivante à la classe MainWindow. L'implémentation crée une instance de WorkflowDesigner, y ajoute une activité Sequence et la place dans la colonne centrale de la Grille 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. Pour ajouter la prise en charge du concepteur pour toutes les activités intégrées, enregistrez les métadonnées du concepteur. Cela vous permet de déplacer des activités, de la boîte à outils vers l'activité Sequence d'origine dans le Concepteur de workflow. Pour ce faire, ajoutez la méthode RegisterMetadata à la classe MainWindow.

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

      Pour plus d'informations sur le sujet suivant l'enregistrement de concepteurs d'activités, consultez Procédure : créer un concepteur d'activités personnalisées.

    5. Dans le constructeur de classes MainWindow, ajoutez des appels aux méthodes précédemment déclarées pour enregistrer les métadonnées dans le but de la prise en charge du concepteur et pour créer l'objet WorkflowDesigner.

      public MainWindow()
      {
          InitializeComponent();
      
          // Register the metadata
          RegisterMetadata();
      
      
          // Add the WFF Designer
          AddDesigner();
      }
      
      Dd489407.note(fr-fr,VS.100).gifRemarque :
      La méthode RegisterMetadata enregistre les métadonnées du concepteur relatives aux activités intégrées, dont l'activité Sequence. Étant donné que la méthode AddDesigner utilise l'activité Sequence, la méthode RegisterMetadata doit être appelée en premier.

  9. Pour générer et exécuter la solution, appuyez sur F5.

  10. Pour savoir comment ajouter la prise en charge de la boîte à outils et de PropertyGrid à votre concepteur de workflow réhébergé, consultez Tâche 3 : créer les volets de PropertyGrid et boîte à outils.

Voir aussi

Tâches

Tâche 1 : créer une nouvelle application Windows Presentation Foundation.
Tâche 3 : créer les volets de PropertyGrid et boîte à outils

Autres ressources

Réhébergement du Workflow Designer