我手头有一个有趣的问题。
我需要创建一个WPF应用程序,它将托管多个UserControl。 (该应用程序就是这样 - 作为具有UserControls对接功能的容器)
应用程序还将托管UserControls的数据模型作为另一个热交换组件。 (我计划为每个组件使用内部队列,以便可以交换组件。)
这些用户控件必须是可插拔的(这很简单),并且可以在运行时重新加载(这似乎很难/不可能)。(AppDomains似乎就是这里的答案,但我不知道其他限制是否存在对MarshalByValue和marshalByRefObject的AppDomain限制是否有任何GUI限制?)“可重新加载”在运行时,如在应用程序启动时热交换UI组件。
我还希望UserControl上的Context菜单包含来自Host的一些项目和来自UserControl本身的一些项目。
我还有逻辑来无缝地控制主机和UserControl之间的焦点(在焦点事件上更改边框颜色等)(跨主机和用户控件的选项卡)。
另外,我还希望UserControl能够启用ActiveX,以便与Excel等ActiveX容器集成。
这将使我在运行UserControl方面具有灵活性(单元测试),在容器中(无缝导航和与容器和其他相关UserControl集成),以及作为ActiveX控件与ActiveX容器集成。
我想知道是否有可能,以及是否有框架(MAF?)支持这一点。任何指向示例或文档的指针都会有所帮助。
此致 法师。
答案 0 :(得分:0)
我一直在探索类似的情景。根据您的描述,MAF似乎是您最好的选择。 The MSDN documentation is here。 This codeplex site包含MAF的工具和样本。希望这会有所帮助。