Partager via


Réhébergement du concepteur

Cette rubrique s'applique à Windows Workflow Foundation 4.

Le réhébergement du concepteur est un scénario courant qui fait référence à l'hébergement de la zone de dessin de conception du workflow dans une application personnalisée. L'application d'hébergement avec laquelle la plupart des personnes sont familières est Visual Studio, mais il existe plusieurs scénarios où l'affichage du concepteur de workflow dans une application peut être utile :

  • Applications d'analyse (permettant à un utilisateur final de visualiser le processus ainsi que les données d'exécution sur le processus, telles que l'état actuellement actif, les données de durée d'exécution agrégées ou d'autres informations relatives à une instance du workflow).

  • Applications qui permettent à un utilisateur de personnaliser le processus avec un ensemble limité d'activités.

Pour prendre en charge ces types d'applications, le concepteur de workflow accompagne le .NET Framework et peut être hébergé à l'intérieur d'une application WPF, ou dans une application WinForms avec le code d'hébergement WPF approprié. Cet exemple illustre les opérations suivantes :

  • Réhébergement du concepteur WF.

  • Utilisation de la boîte à outils réhébergée ainsi que de la grille des propriétés.

Réhébergement du concepteur

Cet exemple montre comment créer la disposition WPF pour contenir le concepteur, comme dans la disposition de grille suivante (code de boîte à outils omis pour des raisons d'espace). Notez la désignation des bordures qui contiennent le concepteur et la grille des propriétés.

<Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2*"/>
            <ColumnDefinition Width="7*"/>
            <ColumnDefinition Width="3*"/>
        </Grid.ColumnDefinitions>
        <Border Grid.Column="0">
            <sad:ToolboxControl> ... </sad:ToolboxControl>
        </Border>
        <Border Grid.Column="1" Name="DesignerBorder"/>
        <Border Grid.Column="2" Name="PropertyBorder"/>
    </Grid> 

Ensuite, l'exemple crée le concepteur et associe son View primaire et PropertyInspectorView au conteneur approprié dans l'interface utilisateur. Quelques lignes supplémentaires de code dans l'exemple suivant méritent une explication. L'appel Register est obligatoire pour associer les concepteurs d'activités par défaut pour les activités fournies avec .NET Framework. Load est appelé pour passer l'élément WF à modifier. Enfin, le View (zone de dessin primaire) et le PropertyInspectorView (grille des propriétés) sont placés sur la surface d'interface utilisateur.

protected override void OnInitialized(EventArgs e)
{
   base.OnInitialized(e);
   // register metadata
   (new DesignerMetadata()).Register();

   // create the workflow designer
   WorkflowDesigner wd = new WorkflowDesigner();
   wd.Load(new Sequence());
   DesignerBorder.Child = wd.View;
   PropertyBorder.Child = wd.PropertyInspectorView;
} 

Utilisation de la boîte à outils réhébergée

Cet exemple utilise de façon déclarative le contrôle de boîte à outils réhébergée dans XAML. Notez que, dans le code, un type peut être passé au constructeur ToolBoxItemWrapper.

<Window.Resources>
        <sys:String x:Key="AssemblyName">System.Activities.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</sys:String>
    </Window.Resources>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2*"/>
            <ColumnDefinition Width="7*"/>
            <ColumnDefinition Width="3*"/>
        </Grid.ColumnDefinitions>
        <Border Grid.Column="0">
            <sad:ToolboxControl>
                <sad:ToolboxControl.Categories>
                    <sad:ToolboxItemCategory CategoryName="Basic">
                        <sad:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}" >
                            <sad:ToolboxItemWrapper.ToolName>
                                System.Activities.Core.Sequence
                            </sad:ToolboxItemWrapper.ToolName>
                           </sad:ToolboxItemWrapper>
                        <sad:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                            <sad:ToolboxItemWrapper.ToolName>
                                System.Activities.Core.WriteLine
                            </sad:ToolboxItemWrapper.ToolName>
                            
                        </sad:ToolboxItemWrapper>
                        <sad:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                            <sad:ToolboxItemWrapper.ToolName>
                                System.Activities.Core.If
                            </sad:ToolboxItemWrapper.ToolName>
                            
                        </sad:ToolboxItemWrapper>
                        <sad:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                            <sad:ToolboxItemWrapper.ToolName>
                                System.Activities.Core.While
                            </sad:ToolboxItemWrapper.ToolName>
                           
                        </sad:ToolboxItemWrapper>
                    </sad:ToolboxItemCategory>
                </sad:ToolboxControl.Categories>
            </sad:ToolboxControl>

Utilisation de l'exemple

  1. Ouvrez la solution DesignerRehosting.sln dans Visual Studio 2010.

  2. Appuyez sur F5 pour compiler et exécuter l'application.

  3. Une application WPF démarre avec un concepteur réhébergé.

Dd699776.Important(fr-fr,VS.100).gif Remarque :
Les exemples peuvent déjà être installés sur votre ordinateur. Recherchez le répertoire (par défaut) suivant avant de continuer.

<LecteurInstall>:\WF_WCF_Samples

Si ce répertoire n'existe pas, rendez-vous sur la page (éventuellement en anglais) des exemples Windows Communication Foundation (WCF) et Windows Workflow Foundation (WF) pour .NET Framework 4 pour télécharger tous les exemples Windows Communication Foundation (WCF) et WF. Cet exemple se trouve dans le répertoire suivant.

<LecteurInstall>:\WF_WCF_Samples\WF\Basic\DesignerRehosting\Basic