在运行时创建WPF窗口

时间:2010-10-27 01:23:46

标签: .net wpf runtime window

是否可以在运行时创建WPF窗口控件?

我正在考虑对问题采取一些有点黑客攻击的解决方案,但我本来希望能够有一个dll,它允许我动态加载WPF窗口并编译它的相关代码(来自xaml和cs文件分别)。我假设我还必须手动加载代码隐藏所需的任何程序集。

这使我能够创建模块化插件,允许Windows从另一个应用程序运行而无需编译到源代码中。

关于这个主题有一些SO帖子,但似乎没有专门处理窗口/代码创建。

如果不可能(或者只是真的没有被推荐),我们将非常感谢对替代品的想法。

干杯,

凯尔

1 个答案:

答案 0 :(得分:1)

我建议您研究MEF等技术。现在,它直接包含在Framework中,但允许您将第三方代码/ windows / views / viewmodels“直接”注入您的应用程序,而无需分发您的应用程序。

您可以提供简单的界面,让MEF为您组合应用程序,而不是尝试编译应用程序中的代码。这是一个更容易,更灵活的选择。

我之前已经使用了这个,我已经签订了ViewModels合约和一份包含DataTemplates的ResourceDictionaries合同。这允许您使用关联的视图对逻辑(ViewModel)进行全动态运行时注入,并在运行时将其包装在Window中。