Hébergement de concepteurs de workflows

Bien qu'il y ait une version Visual Studio du concepteur visuel de workflow de Windows Workflow Foundation, le concepteur de workflow peut être hébergé dans les applications Windows hors de Visual Studio. Vous pouvez héberger le concepteur de workflow, basé sur graphiques, dans vos propres applications Windows personnalisées. Les applications personnalisées peuvent implémenter un formulaire simple du concepteur de workflow avec les fonctionnalités de concepteur de base, telles que la capacité d'afficher graphiquement un workflow prégénéré ou vous pouvez implémenter une version du concepteur de workflow avec un jeu de fonctionnalités plus fiable, semblable à la version Visual Studio du concepteur.

Les classes primaires que vous devez utiliser lorsque vous hébergez le concepteur de workflow sont les suivantes :

  • La classe DesignSurface .NET, qui implémente ce que l'utilisateur perçoit à la manière d'un concepteur en fournissant une aire de conception complètement autonome.

  • La classe WorkflowView, qui affiche une représentation visuelle d'un workflow décrit dans la balise de workflow.

  • La classe WorkflowDesignerLoader, qui prend en charge le chargement personnalisé du concepteur de workflow et de ses composants.

  • La classe WorkflowDesignerMessageFilter, qui peut être dérivée afin de créer un filtre de messages personnalisé qui peut gérer des événements du concepteur de workflow, tels que les opérations glisser, mise en page et coloriage et d'autres événements de concepteur en substituant les méthodes virtuelles appropriées.

L'exemple Basic Designer Hosting indique comment utiliser ces classes pour créer une version simple du concepteur de workflow hébergée dans une application Windows.

Le contrôle WorkflowDesigner qui fait partie de Workflow Tracking Profile Designer fournit un bon point de départ pour la personnalisation du concepteur de workflow hébergeant l'application. Le contrôle WorkflowDesigner offre un moyen facile d'ajouter et d'étendre les fonctionnalités du concepteur de workflow dans une application hôte.

Ajout des fonctionnalités de commande de menu

Du fait que le concepteur de workflow a été conçu à partir de classes de concepteur de base dans le kit de développement logiciel (SDK) du .NET Framework, pour accéder aux commandes de menu de votre application personnalisée, vous devez dériver de la classe MenuCommandService, substituer quelques-uns de ses membres et l'ajouter comme un service à l'hôte chargeur de concepteur utilisé par votre objet chargeur de workflow.

L'exemple suivant montre comment créer un MenuCommandService personnalisé. Dans cet exemple, un menu contextuel est créé lorsque le ShowContextMenu est appelé. Dans la méthode GetSelectionMenuItems, la classe WorkflowMenuCommands est utilisée pour associer les commandes de menu appropriées fournies par le concepteur de workflow au texte correspondant. Un gestionnaire d'événements est ensuite associé à chaque commande afin que le MenuCommand approprié soit appelé lorsqu'une commande est sélectionnée.

L'exemple suivant affiche comment ajouter votre type MenuCommandService dérivé à un hôte chargeur du concepteur dans une méthode Initialize substituée dans un type dérivé de WorkflowDesignerLoader.

Les éléments suivants sont des commandes avec des implémentations par défaut que vous pouvez utiliser dans votre application :

Les autres commandes de WorkflowMenuCommands et StandardCommands doivent être implémentées par vos soins.

Pour les commandes telles que Undo et MultiLevelUndo, vous devez dériver et implémenter les interfaces et classes suivantes :

Après avoir créé ces classes de service dérivées, vous devez les ajouter à la méthode Initialize substituée décrite précédemment dans cette section.

Vous devez également ajouter toute commande implémentée par un utilisateur à votre type MenuCommandService dérivé à l'aide de la méthode AddCommand afin qu'à chaque fois qu'un accès est fait à la commande dans votre concepteur, le gestionnaire d'événements correspondant soit appelé.

Pour plus d'informations, consultez Extending Design-Time Support dans le kit de développement logiciel (SDK) du .NET Framework.

Exemples d'hébergement de concepteur

Les exemples suivants indiquent comment héberger le concepteur de workflow :

  • Basic Designer Hosting - Affiche une version simple du concepteur de workflow hébergée dans une application Windows.

  • Outlook Workflow Wizard - Utilise la classe WorkflowView afin de montrer comment vous pouvez utiliser le modèle objet du workflow de Windows Workflow Foundation pour créer une définition de workflow qui peut être visualisée à l'aide du concepteur de workflow.

  • Workflow Monitor - Indique comment créer un outil permettant d'afficher les informations sur l'état du workflow et de l'activité à l'aide du concepteur de workflow.

  • Workflow Tracking Profile Designer - Indique comment créer un outil permettant de prendre en charge la création de modèles de suivi des définitions du workflow à l'aide du contrôle WorkflowDesigner.

Voir aussi

Référence

WorkflowView
WorkflowDesignerLoader
WorkflowDesignerMessageFilter

Autres ressources

Basic Designer Hosting
Outlook Workflow Wizard
Workflow Monitor
Workflow Tracking Profile Designer

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.