Treinamento
Módulo
Criar seu primeiro fluxo da área de trabalho — Workshop online - Training
Siga as etapas para criar seu primeiro fluxo da área de trabalho.
Não há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Nesta tarefa, você criará os painéis de Caixa de Ferramentas e PropertyGrid, e os adicionará ao Designer de Fluxo de Trabalho do Windows hospedado novamente.
Para referência, o código que deve estar no arquivo MainWindow.xaml.cs após a conclusão das três tarefas na série de tópicos Alterar a Hospedagem do Designer de Fluxo de Trabalho, no final deste tópico.
Abra o projeto HostingApplication obtido com o procedimento descrito em Tarefa 2: hospedar o Designer de Fluxo de Trabalho.
No painel do Gerenciador de Soluções, clique com o botão direito do mouse no arquivo MainWindow.xaml e selecione Exibir Código.
Adicione um método GetToolboxControl
à classe MainWindow
que cria um ToolboxControl, adiciona uma nova categoria de Caixa de Ferramentas à Caixa de Ferramentas e atribui os tipos de atividade Assign e Sequence a essa categoria.
private ToolboxControl GetToolboxControl()
{
// Create the ToolBoxControl.
var ctrl = new ToolboxControl();
// Create a category.
var category = new ToolboxCategory("category1");
// Create Toolbox items.
var tool1 =
new ToolboxItemWrapper("System.Activities.Statements.Assign",
typeof(Assign).Assembly.FullName, null, "Assign");
var tool2 = new ToolboxItemWrapper("System.Activities.Statements.Sequence",
typeof(Sequence).Assembly.FullName, null, "Sequence");
// Add the Toolbox items to the category.
category.Add(tool1);
category.Add(tool2);
// Add the category to the ToolBox control.
ctrl.Categories.Add(category);
return ctrl;
}
Adicione um método AddToolbox
particular à classe MainWindow
que coloca a Caixa de Ferramentas na coluna esquerda na grade.
private void AddToolBox()
{
ToolboxControl tc = GetToolboxControl();
Grid.SetColumn(tc, 0);
grid1.Children.Add(tc);
}
Adicione uma chamada para o método de AddToolBox
no construtor de classe MainWindow()
como mostra o código a seguir:
public MainWindow()
{
InitializeComponent();
this.RegisterMetadata();
this.AddDesigner();
this.AddToolBox();
}
Pressione F5 para compilar e executar sua solução. A Caixa de Ferramentas que contém as atividades Assign e dSequence deve ser exibida.
No painel do Gerenciador de Soluções, clique com o botão direito do mouse no arquivo MainWindow.xaml e selecione Exibir Código.
Adicione o método AddPropertyInspector
à classe MainWindow
para colocar o painel PropertyGrid na coluna mais à direita na grade:
private void AddPropertyInspector()
{
Grid.SetColumn(wd.PropertyInspectorView, 2);
grid1.Children.Add(wd.PropertyInspectorView);
}
Adicione uma chamada para o método de AddPropertyInspector
no construtor de classe MainWindow()
como mostra o código a seguir:
public MainWindow()
{
InitializeComponent();
this.RegisterMetadata();
this.AddDesigner();
this.AddToolBox();
this.AddPropertyInspector();
}
Pressione F5 para compilar e executar a solução. Os painéis de Caixa de Ferramentas, tela de design de fluxo de trabalho e PropertyGrid devem ser todos são exibidos e, quando você arrasta uma atividade Assign ou Sequence na tela de design, a grade de propriedades deve ser atualizada, dependendo da atividade realçada.
O arquivo MainWindow.xaml.cs agora deve conter o código a seguir:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
// dlls added.
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;
namespace HostingApplication
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private WorkflowDesigner wd;
public MainWindow()
{
InitializeComponent();
RegisterMetadata();
AddDesigner();
this.AddToolBox();
this.AddPropertyInspector();
}
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);
}
private void RegisterMetadata()
{
var dm = new DesignerMetadata();
dm.Register();
}
private ToolboxControl GetToolboxControl()
{
// Create the ToolBoxControl.
var ctrl = new ToolboxControl();
// Create a category.
var category = new ToolboxCategory("category1");
// Create Toolbox items.
var tool1 =
new ToolboxItemWrapper("System.Activities.Statements.Assign",
typeof(Assign).Assembly.FullName, null, "Assign");
var tool2 = new ToolboxItemWrapper("System.Activities.Statements.Sequence",
typeof(Sequence).Assembly.FullName, null, "Sequence");
// Add the Toolbox items to the category.
category.Add(tool1);
category.Add(tool2);
// Add the category to the ToolBox control.
ctrl.Categories.Add(category);
return ctrl;
}
private void AddToolBox()
{
ToolboxControl tc = GetToolboxControl();
Grid.SetColumn(tc, 0);
grid1.Children.Add(tc);
}
private void AddPropertyInspector()
{
Grid.SetColumn(wd.PropertyInspectorView, 2);
grid1.Children.Add(wd.PropertyInspectorView);
}
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Treinamento
Módulo
Criar seu primeiro fluxo da área de trabalho — Workshop online - Training
Siga as etapas para criar seu primeiro fluxo da área de trabalho.
Documentação
Tarefa 1: Criar um aplicativo do Windows Presentation Foundation do Windows - .NET Framework
Saiba mais sobre: Tarefa 1: Criar um aplicativo do Windows Presentation Foundation
Tarefa 2: Hospedar o Designer de Fluxo de Trabalho - .NET Framework
Saiba mais sobre: Tarefa 2: Hospedar o Designer de Fluxo de Trabalho
Hospedando novamente o designer de fluxo de trabalho - .NET Framework
O Windows Workflow Designer pode ser re-hospedado em ambientes fora do Visual Studio para criar, modificar e monitorar fluxos de trabalho.
Precedência do valor da propriedade da dependência - WPF .NET Framework
Saiba mais sobre as considerações de precedência de valor para propriedades de dependência em aplicativos Windows Presentation Foundation (WPF).