Sdílet prostřednictvím


Úkol 2: Hostování Návrháře postupu provádění

Toto téma popisuje postup hostování instance Designer pracovního postupu systému Windows v aplikaci Windows Presentation Foundation (WPF).

Procedura konfiguruje ovládací prvek Mřížka, který obsahuje návrháře, programově vytvoří instanci objektuWorkflowDesigner, který obsahuje výchozí Sequence aktivitu, zaregistruje metadata návrháře pro zajištění podpory návrháře pro všechny předdefinované aktivity a hostuje Designer pracovního postupu v aplikaci WPF.

Hostování návrháře pracovního postupu

  1. Otevřete projekt HostingApplication, který jste vytvořili v úkolu 1: Vytvoření nové aplikace Windows Presentation Foundation.

  2. Upravte velikost okna, abyste usnadnili používání Designer pracovního postupu. Chcete-li to provést, vyberte MainWindow v návrháři, stisknutím klávesy F4 zobrazte okno Vlastnosti a v části Rozložení tam nastavte Width na hodnotu 600 a Height na hodnotu 350.

  3. Nastavte název mřížky výběrem panelu Mřížka v návrháři (klikněte na pole uvnitř MainWindow) a nastavením vlastnosti Name v horní části okna Vlastnosti na "grid1".

  4. V okně Vlastnosti kliknutím na tři tečky (...) vedle ColumnDefinitions vlastnosti otevřete dialogové okno Editor kolekcí .

  5. V dialogovém okně Editor kolekcí třikrát klikněte na tlačítko Přidat a vložte do rozložení tři sloupce. První sloupec bude obsahovat sadu nástrojů, druhý sloupec bude hostitelem Designer pracovního postupu a třetí sloupec se použije pro inspektor vlastností.

  6. Width Vlastnost prostředního sloupce nastavte na hodnotu "4*".

  7. Kliknutím na tlačítko OK uložte změny. Do souboru MainWindow.xaml se přidá následující xaml:

    <Grid Name="grid1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="4*" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
    </Grid>
    
  8. V Průzkumník řešení klikněte pravým tlačítkem na MainWindow.xaml a vyberte Zobrazit kód. Upravte kód následujícím postupem:

    1. Přidejte následující obory názvů:

      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. Chcete-li deklarovat pole soukromého člena pro uložení instance WorkflowDesigner, přidejte do MainWindow třídy následující kód:

      public partial class MainWindow : Window
      {
          private WorkflowDesigner wd;
      
          public MainWindow()
          {
              InitializeComponent();
          }
      }
      
    3. Do třídy MainWindow přidejte následující metodu AddDesigner. Implementace vytvoří instanci objektu WorkflowDesigner, přidá Sequence do ní aktivitu a umístí ji do prostředního sloupce mřížky 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. Zaregistrujte metadata návrháře a přidejte podporu návrháře pro všechny předdefinované aktivity. To vám umožní převést aktivity z panelu nástrojů na původní Sequence aktivitu v Designer pracovního postupu. Uděláte to tak, že do třídy přidáte RegisterMetadata metodu MainWindow :

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

      Další informace o registraci návrhářů aktivit najdete v tématu Postupy: Vytvoření vlastní aktivity Designer.

    5. V konstruktoru MainWindow třídy přidejte volání metod deklarovaných dříve, abyste zaregistrovali metadata pro podporu návrháře a vytvořili WorkflowDesigner.

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

      Poznámka

      Metoda RegisterMetadata registruje metadata návrháře předdefinovaných aktivit, včetně Sequence aktivity. Vzhledem k tomu, že AddDesigner metoda používá Sequence aktivitu, je nutné metodu RegisterMetadata nejprve volat.

  9. Stisknutím klávesy F5 sestavte a spusťte řešení.

  10. V tématu Úloha 3: Vytvoření podokna Toolbox a PropertyGrid se dozvíte, jak přidat podporu Toolbox a PropertyGrid do návrháře re hostovaného pracovního postupu.

Viz také