ElementHost中的Application.Current为null

时间:2012-08-30 13:41:01

标签: windows winforms user-controls elementhost

我在我的个人Libs中使用WPF UserControl。 Libs包含在我的WPF和WindowsForms程序中。现在我的UserControl必须显示一个新的(WPF)窗口。在新窗口我想设置所有者。我是这样做的:

dialog.Owner = Application.Current.MainWindow;

如果我在WPF程序中使用UserControl,这样可以正常工作。

当我在WindowsForms程序中使用UserControl时(我在ElementHost elementHost.Child = ...中设置UserControl)是Application.Current null。

这不好,我的程序会抛出异常。

为什么Application.Current为空?

1 个答案:

答案 0 :(得分:37)

Application.Current 特定于 WPF应用程序 因此,当您在WinForms应用程序中使用WPF控件时,您需要初始化WPF应用程序的实例。在WinForms应用程序中执行此操作。

if ( null == System.Windows.Application.Current )
{
   new System.Windows.Application();
}