Attività 2: Ospitare Progettazione flussi di lavoro

Questo argomento descrive la procedura per ospitare un'istanza del flusso di lavoro di Windows Designer in un'applicazione Windows Presentation Foundation (WPF).

La procedura configura il controllo Griglia che contiene la finestra di progettazione, crea a livello di codice un'istanza di che contiene un'attività predefinitaSequence, registra i metadati della finestra di progettazione per fornire il supporto della finestra di progettazione per tutte le attività predefinite e ospita il flusso di WorkflowDesigner lavoro Designer nell'applicazione WPF.

Per ospitare la finestra di progettazione del flusso di lavoro

  1. Aprire il progetto HostingApplication creato nell'attività 1: Creare una nuova applicazione Windows Presentation Foundation.

  2. Modificare le dimensioni della finestra per semplificare l'uso della Designer flusso di lavoro. A tale scopo, selezionare MainWindow nella finestra di progettazione, premere F4 per visualizzare la finestra Proprietà e, nella sezione Layout , impostare Larghezza su un valore pari a 600 e altezza su un valore pari a 350.

  3. Impostare il nome della griglia selezionando il pannello Griglia nella finestra di progettazione (fare clic sulla casella all'interno di MainWindow) e impostando la proprietà Name nella parte superiore della finestra Proprietà su "grid1".

  4. Nella finestra Proprietà fare clic sui puntini di sospensione (...) accanto alla ColumnDefinitions proprietà per aprire la finestra di dialogo Editor raccolta .

  5. Nella finestra di dialogo Editor raccolta fare clic sul pulsante Aggiungi tre volte per inserire tre colonne nel layout. La prima colonna conterrà la casella degli strumenti, la seconda colonna ospiterà il flusso di lavoro Designer e la terza colonna verrà usata per il controllo delle proprietà.

  6. Impostare la Width proprietà della colonna centrale sul valore "4*".

  7. Fare clic su OK per salvare le modifiche. Il codice XAML seguente viene aggiunto al file MainWindow.xaml :

    <Grid Name="grid1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="4*" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
    </Grid>
    
  8. In Esplora soluzioni fare clic con il pulsante destro del mouse su MainWindow.xaml e scegliere Visualizza codice. Modificare il codice attenendosi ai passaggi seguenti:

    1. Aggiungere gli spazi dei nomi seguenti:

      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 WorkflowDesignerdi , aggiungere il codice seguente alla MainWindow classe:

      public partial class MainWindow : Window
      {
          private WorkflowDesigner wd;
      
          public MainWindow()
          {
              InitializeComponent();
          }
      }
      
    3. Aggiungere il metodo AddDesigner seguente alla classe MainWindow. L'implementazione crea un'istanza di WorkflowDesigner, aggiunge un'attività Sequence e la inserisce nella colonna centrale della griglia 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. Registrare i metadati della finestra di progettazione per aggiungere il supporto della finestra di progettazione per tutte le attività predefinite. Ciò consente di eliminare le attività dalla casella degli strumenti all'attività originale Sequence nel flusso di lavoro Designer. A tale scopo, aggiungere il RegisterMetadata metodo alla MainWindow classe:

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

      Per altre informazioni sulla registrazione delle finestre di progettazione attività, vedere Procedura: Creare un'attività personalizzata 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.

      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. Poiché il metodo AddDesigner usa l'attività Sequence, è necessario chiamare innanzitutto il metodo RegisterMetadata.

  9. Premere F5 per compilare ed eseguire la soluzione.

  10. Vedere Attività 3: Creare i riquadri casella degli strumenti e PropertyGrid per informazioni su come aggiungere il supporto di Casella degli strumenti e PropertyGrid alla finestra di progettazione del flusso di lavoro rehosted.

Vedi anche