[WF4.0]工作流设计器Rehosting(三)

简介:

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;

using System.Activities.Design;

using System.Activities.Design.Metadata;

using System.Activities.Statements;

using System.ComponentModel;

using System.Activities.Core.Design;

 

namespace WF4Designer

{

    ///<summary>

    /// Interaction logic for Window1.xaml

    ///</summary>

    public partial class Window1 : Window

    {

        public Window1()

        {

            InitializeComponent();

            AddDesigner();

        }

 

        private void AddDesigner()

        {

            //注册活动外观

            //var builder = new AttributeTableBuilder();

            //builder.AddCustomAttributes(typeof(Flowchart),

            //                 new DesignerAttribute(typeof(SequenceDesigner)));

 

            //MetadataStore.AddAttributeTable(builder.CreateTable());

            new DesignerMetadata().Register();

 

            var wd = new WorkflowDesigner();

            wd.Load(new Flowchart());

            Grid.SetColumn(wd.View, 1);

            gridview.Children.Add(wd.View);

 

 

            ToolboxControl toolbox = new ToolboxControl();

            toolbox.Categories.Add(new ToolboxCategoryItemsCollection

                {

                    new ToolboxItemWrapper(typeof(FlowSwitch)),

                    new ToolboxItemWrapper(typeof(FlowDecision))

                });

            gridview.Children.Add(toolbox);

            Grid.SetColumn(toolbox, 2);

 

 

            Grid.SetColumn(wd.PropertyInspectorView, 0);

            gridview.Children.Add(wd.PropertyInspectorView);

 

           

        }

    }

}

现在能够进行拖放操作了,需要注意的是必须在加载工作流之前注册外观元数据,否则不起作用;另外没有找到FlowchartDesigner,不知道用哪一个Designer来对应Flowchart,还好在MSDN论坛上看到有人解答了,使用new DesignerMetadata().Register()注册所有Designer,这样可以Rehosting Flowchart工作流。







本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2009/07/08/1519458.html,如需转载请自行联系原作者

相关文章