2010-10-27 83 views
1

是否可以在运行时创建WPF窗口控件?我想本质上是一个有点黑客解决方案的问题,但我基本上希望能够有一个dll,它允许我动态加载一个WPF窗口并编译它后面的相关代码(从一个xaml和cs文件)。我假设我也将不得不手动加载代码隐藏需要的任何程序集。在运行时创建WPF窗口

这会给我创建模块化插件的能力,允许Windows从另一个应用程序运行而不被编译到源代码中。

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

如果这是不可能的(或者只是真的没有reccomended)想法替代品将不胜感激。

干杯,

凯尔

回答

1

我会建议寻找到像MEF,而不是技术。现在,它直接包含在框架中,但允许您将第三方代码/窗口/视图/视图模型直接“注入”到您的应用程序中,而无需分发您的应用程序。

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

我以前用过ViewModels和ResourceDictionaries包含DataTemplates的合约。这使您可以在逻辑(ViewModel)及其关联的视图中执行完全动态的运行时注入,并在运行时将其包装在Window中。

+0

非常感谢,这听起来像这可能是一个更易于管理的解决方案。我会检查出来的。 – Kyle 2010-10-27 05:11:33