我正在尝试重新托管 WF4 工作流设计器。在“导入”选项卡中,我希望默认导入一些命名空间。它看起来像这样:
导入的命名空间 http://imageshack.us/m/850/5383/imports.png
经过大量研究,我发现如果你看
workflowDesigner.Context.Items.GetValue<ImportedNamespaceContextItem>().ImportedNamespaces
你会看到已经导入的东西。但是,手动向此集合添加命名空间似乎没有任何效果。因此,我的问题是:如何以正确的方式将导入的命名空间添加到此列表中?或者,如何使用手动添加的命名空间导入来刷新上下文?
以下解决方案的附加信息:
为了解决这个问题,我创建了我想要的“clean slate”活动 XAML 文件,将其添加到我的项目中,将其Build Action设置为Embedded Resource并将其Custom Tool设置为空字符串。
然后,在初始化我的 WorkflowDesigner 的代码中,我执行以下操作:
_Wd = new WorkflowDesigner();
_Wd.Load(
XamlServices.Load(
ActivityXamlServices.CreateBuilderReader(
new XamlXmlReader(
Assembly.GetEntryAssembly().GetManifestResourceStream( "WpfApplication1.New.xaml" )
)
)
) as ActivityBuilder
);
现在我的工作流程已经导入了所有需要的命名空间。