Zadanie 2. Hostowanie projektanta przepływu pracy
W tym temacie opisano procedurę hostowania wystąpienia Projektant przepływu pracy systemu Windows w aplikacji Windows Presentation Foundation (WPF).
Procedura konfiguruje kontrolkę Grid zawierającą projektanta, programowo tworzy wystąpienieWorkflowDesigner, które zawiera działanie domyślneSequence, rejestruje metadane projektanta w celu zapewnienia obsługi projektanta dla wszystkich wbudowanych działań i hostuje Projektant Przepływu pracy w aplikacji WPF.
Aby hostować projektanta przepływu pracy
Otwórz projekt HostingApplication utworzony w zadaniu 1: Utwórz nową aplikację Windows Presentation Foundation.
Dostosuj rozmiar okna, aby ułatwić korzystanie z Projektant przepływu pracy. W tym celu wybierz pozycję MainWindow w projektancie, naciśnij klawisz F4, aby wyświetlić okno Właściwości , a następnie w sekcji Układ ustaw wartość Width na wartość 600 i Height na wartość 350.
Ustaw nazwę siatki, wybierając panel Siatka w projektancie (kliknij pole wewnątrz okna MainWindow) i ustawiając właściwość Name w górnej części okna Właściwości na "grid1".
W oknie Właściwości kliknij wielokropek (...) obok
ColumnDefinitions
właściwości, aby otworzyć okno dialogowe Edytor kolekcji .W oknie dialogowym Edytor kolekcji kliknij przycisk Dodaj trzy razy, aby wstawić trzy kolumny do układu. Pierwsza kolumna będzie zawierać przybornik, druga kolumna będzie hostować przepływ pracy Projektant, a trzecia kolumna zostanie użyta dla inspektora właściwości.
Width
Ustaw właściwość kolumny środkowej na wartość "4*".Kliknij przycisk OK, aby zapisać zmiany. Następujący kod XAML jest dodawany do pliku MainWindow.xaml :
<Grid Name="grid1"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="4*" /> <ColumnDefinition /> </Grid.ColumnDefinitions> </Grid>
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję MainWindow.xaml i wybierz pozycję Wyświetl kod. Zmodyfikuj kod, wykonując następujące kroki:
Dodaj następujące przestrzenie nazw:
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;
Aby zadeklarować pole prywatnego elementu członkowskiego do przechowywania wystąpienia klasy WorkflowDesigner, dodaj następujący kod do
MainWindow
klasy:public partial class MainWindow : Window { private WorkflowDesigner wd; public MainWindow() { InitializeComponent(); } }
Dodaj następującą metodę
AddDesigner
do klasyMainWindow
. Implementacja tworzy wystąpienie WorkflowDesignerobiektu , dodaje Sequence do niego działanie i umieszcza je w środkowej kolumnie siatki 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); }
Zarejestruj metadane projektanta, aby dodać obsługę projektanta dla wszystkich wbudowanych działań. Dzięki temu można usuwać działania z przybornika do oryginalnego Sequence działania w Projektant przepływu pracy. Aby to zrobić, dodaj metodę
RegisterMetadata
MainWindow
do klasy:private void RegisterMetadata() { var dm = new DesignerMetadata(); dm.Register(); }
Aby uzyskać więcej informacji na temat rejestrowania projektantów działań, zobacz How to: Create a Custom Activity Projektant (Instrukcje: tworzenie niestandardowego działania Projektant).
W konstruktorze
MainWindow
klasy dodaj wywołania do metod zadeklarowanych wcześniej w celu zarejestrowania metadanych na potrzeby obsługi projektanta i utworzenia elementu WorkflowDesigner.public MainWindow() { InitializeComponent(); // Register the metadata. RegisterMetadata(); // Add the WFF Designer. AddDesigner(); }
Naciśnij klawisz F5 , aby skompilować i uruchomić rozwiązanie.
Zobacz Zadanie 3. Tworzenie okienek Przybornik i WłaściwośćGrid , aby dowiedzieć się, jak dodać obsługę przybornika i właściwościGrid do ponownie hostowanego projektanta przepływu pracy.