Attività 2: ospitare l'utilità di progettazione del flusso di lavoroTask 2: Host the Workflow Designer

In questo argomento viene descritta la procedura per l'hosting di un'istanza di Progettazione flussi di lavoro di Windows.Windows Workflow Designer in un'applicazione Windows Presentation Foundation (WPF).This topic describes the procedure for hosting an instance of the Progettazione flussi di lavoro di Windows.Windows Workflow Designer in a Windows Presentation Foundation (WPF) application.

La procedura consente di configurare il griglia controllo che contiene la finestra di progettazione a livello di codice crea un'istanza del WorkflowDesigner che contiene un valore predefinito Sequence attività registra i metadati della finestra di progettazione per fornire supporto della finestra di progettazione per le attività predefinite tutte e che ospita il Progettazione flussi di lavoroWorkflow Designer nel WPFWPF dell'applicazione.The procedure configures the Grid control that contains the designer, programmatically creates an instance of the WorkflowDesigner that contains a default Sequence activity, registers the designer metadata to provide designer support for all built-in activities, and hosts the Progettazione flussi di lavoroWorkflow Designer in the WPFWPF application.

Per ospitare la finestra di progettazione del flusso di lavoroTo host the workflow designer

  1. Aprire il HostingApplication progetto creato in attività 1: creare una nuova applicazione Windows Presentation Foundation.Open the HostingApplication project you created in Task 1: Create a New Windows Presentation Foundation Application.

  2. Regolare le dimensioni della finestra per semplificare l'uso di Progettazione flussi di lavoroWorkflow Designer.Adjust the size of the window to make it easier to use the Progettazione flussi di lavoroWorkflow Designer. A tale scopo, selezionare MainWindow nella finestra di progettazione, premere F4 per visualizzare il proprietà finestra e, nel Layout sezione, impostare il larghezza su un valore pari a 600 e altezza su un valore di 350.To do this, select MainWindow in the designer, press F4 to display the Properties window, and, in the Layout section there, set the Width to a value of 600 and the Height to a value of 350.

  3. Impostare il nome della griglia selezionando il griglia pannello nella finestra di progettazione (fare clic sulla casella all'interno del MainWindow) e impostando il nome proprietà nella parte superiore del Proprietà finestra su "grid1".Set the grid name by selecting the Grid panel in the designer (click the box inside the MainWindow) and setting the Name property at the top of the Properties window to "grid1".

  4. Nel proprietà finestra, fare clic sui puntini di sospensione (... ) accanto al ColumnDefinitions proprietà per aprire la Editor della raccolta la finestra di dialogo.In the Properties window, click the ellipsis () next to the ColumnDefinitions property to open the Collection Editor dialog box.

  5. Nel Editor della raccolta la finestra di dialogo, fare clic su di Aggiungi tre volte per inserire tre colonne nel layout.In the Collection Editor dialog box, click the Add button three times to insert three columns into the layout. La prima colonna conterrà il della casella degli strumenti, mentre la seconda ospiterà il Progettazione flussi di lavoroWorkflow Designer, e la terza colonna verrà utilizzata per il controllo proprietà.The first column will contain the Toolbox, the second column will host the Progettazione flussi di lavoroWorkflow Designer, and the third column will be used for the property inspector.

  6. Impostare il Width proprietà della colonna centrale sul valore "4 *".Set the Width property of the middle column to the value "4*".

  7. Fare clic su OK per salvare le modifiche.Click OK to save the changes. Il seguente codice XAML viene aggiunto al file MainWindow.xaml:The following XAML is added to your MainWindow.xaml file:

    <Grid Name="grid1">  
        <Grid.ColumnDefinitions>  
            <ColumnDefinition />  
            <ColumnDefinition Width="4*" />  
            <ColumnDefinition />  
        </Grid.ColumnDefinitions>  
    </Grid>  
    
  8. In Esplora, fare doppio clic su MainWindow. XAML e selezionare Visualizza codice.In Solution Explorer, right-click MainWindow.xaml and select View Code. Modificare il codice attenendosi ai passaggi seguenti:Modify the code by following these steps:

    1. Aggiungere gli spazi dei nomi seguenti:Add the following namespaces:

      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. Per dichiarare un campo membro privato per contenere un'istanza di WorkflowDesigner, aggiungere il codice seguente alla classe MainWindow.To declare a private member field to hold an instance of the WorkflowDesigner, add the following code to the MainWindow class.

      public partial class MainWindow : Window  
      {  
          private WorkflowDesigner wd;  
      
          public MainWindow()  
          {  
              InitializeComponent();  
          }  
      }  
      
    3. Aggiungere il metodo AddDesigner seguente alla classe MainWindow.Add the following AddDesigner method to the MainWindow class. L'implementazione crea un'istanza di WorkflowDesigner, aggiunge un Sequence attività e lo inserisce nella colonna centrale della grid1 griglia.The implementation creates an instance of the WorkflowDesigner, adds a Sequence activity to it, and places it in middle column of the grid1 Grid.

      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. Registrare i metadati della finestra di progettazione per aggiungere il supporto della finestra di progettazione per tutte le attività incorporate.Register the designer metadata to add designer support for all the built-in activities. In questo modo sarà possibile spostare le attività dalla casella degli strumenti all'attività Sequence originale in Progettazione flussi di lavoroWorkflow Designer.This enables you to drop activities from the toolbox onto the original Sequence activity in the Progettazione flussi di lavoroWorkflow Designer. A tal fine, aggiungere il metodo RegisterMetadata alla classe MainWindow.To do this, add the RegisterMetadata method to the MainWindow class.

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

      Per ulteriori informazioni sulla registrazione di ActivityDesigner, vedere procedura: creare un ActivityDesigner personalizzato.For more information about registering activity designers, see How to: Create a Custom Activity Designer.

    5. Nel costruttore della classe MainWindow, aggiungere chiamate ai metodi dichiarati precedentemente per registrare i metadati per il supporto della finestra di progettazione e per creare l'oggetto WorkflowDesigner.In the MainWindow class constructor, add calls to the methods declared previously to register the metadata for designer support and to create the WorkflowDesigner.

      public MainWindow()  
      {  
          InitializeComponent();  
      
          // Register the metadata  
          RegisterMetadata();  
      
          // Add the WFF Designer  
          AddDesigner();  
      }  
      

      Nota

      Il metodo RegisterMetadata registra i metadati della finestra di progettazione di attività incorporate, inclusa l'attività Sequence.The RegisterMetadata method registers the designer metadata of built-in activities including the Sequence activity. Poiché il metodo AddDesigner usa l'attività Sequence, è necessario chiamare innanzitutto il metodo RegisterMetadata.Because the AddDesigner method uses the Sequence activity, the RegisterMetadata method must be called first.

  9. Premere F5 per compilare ed eseguire la soluzione.Press F5 to build and run the solution.

  10. Vedere attività 3: creare la casella degli strumenti e PropertyGrid riquadri per informazioni su come aggiungere della casella degli strumenti e PropertyGrid supportano alla finestra di progettazione del flusso di lavoro ospitata nuovamente.See Task 3: Create the Toolbox and PropertyGrid Panes to learn how to add Toolbox and PropertyGrid support to your rehosted workflow designer.

Vedere ancheSee Also

Riallocazione di Progettazione flussi di lavoroRehosting the Workflow Designer
Attività 1: Creare una nuova applicazione Windows Presentation FoundationTask 1: Create a New Windows Presentation Foundation Application
Attività 3: Creare i riquadri Casella degli strumenti e PropertyGridTask 3: Create the Toolbox and PropertyGrid Panes