1

我希望我能理解将 xaml 文件加载到重新托管的设计器中的工作原理。取决于 xaml 定义,我得到不同的结果。

  1. Xaml,文件中的根节点是包含流程图的Activity。在创建设计器之后使用 desinger.Load(xamlFileName) 和 (new DesignerMetadata).Register() 就足够了(有人知道那是什么魔法吗?)在设计器中,我得到了类似于 Visual Studio 编辑器的工作流程。
  2. Xaml,根节点是流程图本身。相同的步骤只给了我一个设计器中的裸活动。我尝试根据这个在活动构建器中包装工作流(我有类似的问题)。组件没有问题(至少我是这么认为的),没有例外。我不能让它像前一点那样工作。

保存在 Visual Studio 中的 xaml 和保存在重新托管的设计器中的 xaml 之间有什么区别吗?
ActivityXamlServices.Load 有时返回 DynamicActivity,有时返回目标工作流。它取决于什么?

感谢您的任何支持。

4

1 回答 1

2

事实证明,这取决于给予重新托管设计师的论据。如果我从新流程图开始,xaml 中的根节点将是流程图。稍后将此类文件加载到设计器时,您不需要包装它。如果您从 ActivityBuilder 开始,您可能需要在加载 xaml 之前使用 WorkflowInspectionServices 来获取工作流。
有时要在设计器中正确显示工作流程,您需要从正确的程序集中使用 (new DesignerMetadata).Register() ,但这并不总是必要的,我不确定它依赖于什么。

于 2012-09-21T11:41:55.467 回答