Partilhar via


Tarefa 2: alojar a Designer de Fluxo de Trabalho

Este tópico descreve o procedimento para alojar uma instância do Designer do Fluxo de Trabalho do Windows numa aplicação de Windows Presentation Foundation (WPF).

O procedimento configura o controlo Grelha que contém o estruturador, cria programaticamente uma instância do WorkflowDesigner que contém uma atividade predefinidaSequence, regista os metadados do estruturador para fornecer suporte ao estruturador para todas as atividades incorporadas e aloja a Designer de Fluxo de Trabalho na aplicação WPF.

Para alojar o estruturador de fluxo de trabalho

  1. Abra o projeto HostingApplication que criou na Tarefa 1: Criar uma Nova Aplicação Windows Presentation Foundation.

  2. Ajuste o tamanho da janela para facilitar a utilização do fluxo de trabalho Designer. Para tal, selecione MainWindow no estruturador, prima F4 para apresentar a janela Propriedades e, na secção Esquema , defina a Largura para um valor de 600 e a Altura para um valor de 350.

  3. Defina o nome da grelha ao selecionar o painel Grelha no estruturador (clique na caixa dentro do MainWindow) e defina a propriedade Nome na parte superior da janela Propriedades como "grelha1".

  4. Na janela Propriedades , clique nas reticências (...) junto à ColumnDefinitions propriedade para abrir a caixa de diálogo Editor de Coleções .

  5. Na caixa de diálogo Editor de Coleções , clique três vezes no botão Adicionar para inserir três colunas no esquema. A primeira coluna irá conter a Caixa de Ferramentas, a segunda coluna irá alojar a Designer fluxo de trabalho e a terceira coluna será utilizada para o inspetor de propriedades.

  6. Defina a Width propriedade da coluna do meio para o valor "4*".

  7. Clique em OK para guardar as alterações. O seguinte XAML é adicionado ao ficheiro MainWindow.xaml :

    <Grid Name="grid1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="4*" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
    </Grid>
    
  8. No Explorador de Soluções, clique com o botão direito do rato em MainWindow.xaml e selecione Ver Código. Modifique o código ao seguir estes passos:

    1. Adicione os seguintes espaços de nomes:

      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. Para declarar um campo de membro privado para conter uma instância do WorkflowDesigner, adicione o seguinte código à MainWindow classe :

      public partial class MainWindow : Window
      {
          private WorkflowDesigner wd;
      
          public MainWindow()
          {
              InitializeComponent();
          }
      }
      
    3. Adicione o seguinte método AddDesigner à classe MainWindow. A implementação cria uma instância do WorkflowDesigner, adiciona uma Sequence atividade à mesma e coloca-a na coluna do meio da Grelha1.

      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. Registe os metadados do estruturador para adicionar suporte ao estruturador para todas as atividades incorporadas. Isto permite-lhe remover atividades da caixa de ferramentas para a atividade original Sequence na Designer fluxo de trabalho. Para tal, adicione o RegisterMetadata método à MainWindow classe :

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

      Para obter mais informações sobre o registo de designers de atividade, veja Como: Criar uma Atividade Personalizada Designer.

    5. No construtor de MainWindow classes, adicione chamadas aos métodos declarados anteriormente para registar os metadados do suporte do estruturador e para criar o WorkflowDesigner.

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

      Nota

      O RegisterMetadata método regista os metadados do estruturador de atividades incorporadas, incluindo a Sequence atividade. Uma vez que o AddDesigner método utiliza a Sequence atividade, o RegisterMetadata método tem de ser chamado primeiro.

  9. Prima F5 para criar e executar a solução.

  10. Consulte Tarefa 3: Criar a Caixa de Ferramentas e Os Painéis PropertyGrid para saber como adicionar suporte de Caixa de Ferramentas e PropertyGrid ao estruturador de fluxo de trabalho realojado.

Ver também