本主题适用于 Windows Workflow Foundation 4。
本主题描述在 Windows Presentation Foundation (WPF) 应用程序中承载 Windows 工作流设计器 的实例的过程。
在此过程中将执行以下操作:配置包含设计器的 Grid 控件,以编程方式创建包含默认 Sequence 活动的 WorkflowDesigner,注册设计器元数据以提供针对所有内置活动的设计器支持,以及在 WPF 应用程序中承载 工作流设计器。
承载工作流设计器
打开在任务 1:创建一个新的 Windows Presentation Foundation 应用程序中创建的 HostingApplication 项目。
调整窗口的大小,以便更轻松地使用 工作流设计器。为此,请在设计器中选择**“MainWindow”,按 F4 以显示“属性”窗口,然后在“布局”部分中,将“宽度”设置为值 600,并将“高度”**设置为值 350。
通过以下方式设置网格名称:在设计器中选择 Grid 面板(单击**“MainWindow”中的框),并将“属性”**窗口顶部的 Name 属性设置为“grid1”。
在**“属性”窗口中,单击 ColumnDefinitions 属性旁边的省略号(“…”),打开“集合编辑器”**对话框。
在**“集合编辑器”对话框中,单击“添加”按钮三次以在布局中插入三个列。第一列中包含“工具箱”**,第二列将承载 工作流设计器,第三列则供属性检查器使用。
将中间列的
Width
属性值设置为“4*”。单击**“确定”**保存更改。以下 XAML 将添加到 MainWindow.xaml 文件中:
<Grid Name="grid1"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="4*" /> <ColumnDefinition /> </Grid.ColumnDefinitions> </Grid>
在**“解决方案资源管理器”中,右击 MainWindow.xaml 并选择“查看代码”**。按照以下这些步骤修改代码:
添加下列命名空间:
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;
若要声明某个私有成员字段包含 WorkflowDesigner 的实例,请将下面的代码添加到
MainWindow
类。public partial class MainWindow : Window { private WorkflowDesigner wd; public MainWindow() { InitializeComponent(); } }
将下面的
AddDesigner
方法添加到MainWindow
类。在实现中,将创建 WorkflowDesigner 的实例,将 Sequence 活动添加到其中,并将该实例置于 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); }
注册设计器元数据,为所有内置活动添加设计器支持。通过此方法可以将活动从工具箱拖放到 工作流设计器 中的原始 Sequence 活动上。为此,请将
RegisterMetadata
方法添加到MainWindow
类中。private void RegisterMetadata() { DesignerMetadata dm = new DesignerMetadata(); dm.Register(); }
有关注册活动设计器的更多信息,请参见如何:创建自定义活动设计器。
在
MainWindow
类构造函数中,添加对上文声明的方法的调用,以便注册设计器支持元数据,并创建 WorkflowDesigner。public MainWindow() { InitializeComponent(); // Register the metadata RegisterMetadata(); // Add the WFF Designer AddDesigner(); }
注意:
RegisterMetadata
方法注册包含 Sequence 活动的内置活动的设计器元数据。由于AddDesigner
方法使用 Sequence 活动,因此必须先调用RegisterMetadata
方法。
按 F5 生成并运行解决方案。
若要了解如何向重新承载的工作流设计器添加**“工具箱”和“PropertyGrid”**支持,请参见任务 3:创建工具箱窗格和属性网格窗格。
另请参见
任务
任务 1:创建一个新的 Windows Presentation Foundation 应用程序
任务 3:创建工具箱窗格和属性网格窗格