在WindowsForms项目中使用UnityBootStrapper托管Prism应用程序

时间:2014-02-03 23:07:23

标签: c# .net wpf winforms prism

如何在WindowsForms项目中使用UnityBootStrapper托管WPF Prism应用程序?

我在Windows窗体主机项目中添加了对以下wpf程序集的引用

PresentationCore 
PresentationFramework 
WindowsBase Ayatem.xaml 
WindowsFormsIntegration.dll 
Microsoft.Practices.Prism.UnityExtensions

我删除了Prism项目的app.xaml文件。 在win窗体的ElementHost控件中,我试图填充shell但是,它没有加载模块。

//Create the ElementHost control for hosting the WPF UserControl
ElementHost host = new ElementHost();
host.Dock = DockStyle.Fill;

//Create the WPF UserControl.
HelloWorld.Shell uc = new HelloWorld.Shell();

//Assign the WPF UserControl to the ElementHost control's Child property.
host.Child = uc;

//Add the ElementHost control to the form's collection of child controls.
this.Controls.Add(host);

我使用的是hello world sample prism应用程序,截至今天,我的项目只有1个模块。

1 个答案:

答案 0 :(得分:0)

以下 Codeplex 讨论解决了与您尝试完成的情况非常类似的情况:

请注意,您需要修改 Prism.Desktop 项目中的 ReionManager的IsInDesignMode() 方法作为修复已使用 Cider 实现已知问题。您只需要更改方法,重建 Prism Library 并将新构建的程序集引用到 WinForm 解决方案中。

我希望这有帮助, 问候。