Attività 2: ospitare l'utilità di progettazione del flusso di lavoro
Le informazioni contenute in questo argomento sono valide per Windows Workflow Foundation 4.
In questo argomento viene descritta la procedura per ospitare un'istanza di Progettazione flussi di lavoro di Windows in un'applicazione Windows Presentation Foundation (WPF).
Nella procedura viene configurato il controllo Griglia che contiene la finestra di progettazione, viene creata a livello di codice un'istanza di WorkflowDesigner che contiene un'attività Sequence predefinita, vengono registrati i metadati della finestra di progettazione per fornire supporto della finestra di progettazione per tutte le attività predefinite e viene ospitato Progettazione flussi di lavoro nell'applicazione WPF.
Per ospitare la finestra di progettazione del flusso di lavoro
Aprire il progetto HostingApplication creato in Attività 1: creare una nuova applicazione Windows Presentation Foundation.
Regolare le dimensioni della finestra per semplificare l'utilizzo di Progettazione flussi di lavoro. A tal fine, selezionare MainWindow nella finestra di progettazione, premere F4 per visualizzare la finestra Proprietà, quindi nella sezione Layout impostare su 600 il valore di Larghezza e su 350 il valore di Altezza.
Impostare il nome della griglia selezionando il pannello Griglia nella finestra di progettazione (fare clic sulla casella all'interno di MainWindow) e impostando su "grid1" la proprietà Name nella parte superiore della finestra Proprietà.
Nella finestra Proprietà fare clic sui puntini di sospensione (…) accanto alla proprietà ColumnDefinitions per aprire la finestra di dialogo Editor della raccolta.
Nella finestra di dialogo Editor della raccolta fare clic tre volte sul pulsante Aggiungi per inserire tre colonne nel layout. La prima colonna conterrà la Casella degli strumenti, la seconda ospiterà Progettazione flussi di lavoro e la terza colonna sarà utilizzata per il controllo proprietà.
Impostare la proprietà
Width
della colonna centrale sul valore "4*".Scegliere OK per salvare le modifiche. Il seguente codice XAML viene aggiunto al file MainWindow.xaml:
<Grid Name="grid1"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="4*" /> <ColumnDefinition /> </Grid.ColumnDefinitions> </Grid>
In Esplora soluzioni fare clic con il pulsante destro del mouse su MainWindow.xaml e selezionare Visualizza codice. Modificare il codice attenendosi ai passaggi seguenti:
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;
Per dichiarare un campo membro privato per contenere un'istanza di WorkflowDesigner, aggiungere il codice seguente alla classe
MainWindow
.public partial class MainWindow : Window { private WorkflowDesigner wd; public MainWindow() { InitializeComponent(); } }
Aggiungere il metodo
AddDesigner
seguente alla classeMainWindow
. Tramite l'implementazione viene creata un'istanza dell'oggetto WorkflowDesigner, viene aggiunta un'attività Sequence che viene inserita 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); }
Registrare i metadati della finestra di progettazione per aggiungere il supporto della finestra di progettazione per tutte le attività incorporate. In questo modo sarà possibile spostare le attività dalla casella degli strumenti all'attività Sequence originale in Progettazione flussi di lavoro. A tal fine, aggiungere il metodo
RegisterMetadata
alla classeMainWindow
.private void RegisterMetadata() { DesignerMetadata dm = new DesignerMetadata(); dm.Register(); }
Per ulteriori informazioni su registrazione di ActivityDesigner, vedere Procedura: Creare un ActivityDesigner personalizzato.
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 metodoAddDesigner
utilizza l'attività Sequence, è necessario chiamare innanzitutto il metodoRegisterMetadata
.
Premere F5 per compilare ed eseguire la soluzione.
Per informazioni su come aggiungere il supporto della Casella degli strumenti e di PropertyGrid alla finestra di progettazione del flusso di lavoro riallocata, vedere Attività 3: creare i riquadri Casella degli strumenti e PropertyGrid.
Vedere anche
Attività
Attività 1: creare una nuova applicazione Windows Presentation Foundation
Attività 3: creare i riquadri Casella degli strumenti e PropertyGrid
Altre risorse
Riallocazione dell'utilità di progettazione del flusso di lavoro