我在我的个人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
为空?
答案 0 :(得分:37)
Application.Current 特定于 WPF应用程序 因此,当您在WinForms应用程序中使用WPF控件时,您需要初始化WPF应用程序的实例。在WinForms应用程序中执行此操作。
if ( null == System.Windows.Application.Current )
{
new System.Windows.Application();
}