Udostępnij za pośrednictwem


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

  1. Otwórz projekt HostingApplication utworzony w zadaniu 1: Utwórz nową aplikację Windows Presentation Foundation.

  2. 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.

  3. 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".

  4. W oknie Właściwości kliknij wielokropek (...) obok ColumnDefinitions właściwości, aby otworzyć okno dialogowe Edytor kolekcji .

  5. 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.

  6. Width Ustaw właściwość kolumny środkowej na wartość "4*".

  7. 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>
    
  8. 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:

    1. 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;
      
    2. 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();
          }
      }
      
    3. Dodaj następującą metodę AddDesigner do klasy MainWindow. 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);
      }
      
    4. 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ę RegisterMetadataMainWindow 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).

    5. 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();
      }
      

      Uwaga

      Metoda RegisterMetadata rejestruje metadane projektanta wbudowanych działań, w tym Sequence działania. AddDesigner Ponieważ metoda używa działania, należy najpierw wywołać metodę SequenceRegisterMetadata .

  9. Naciśnij klawisz F5 , aby skompilować i uruchomić rozwiązanie.

  10. 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.

Zobacz też