我在我个人的Libs中使用WPF UserControl。 这些Libs包含在我的WPF和WindowsForms程序中。 现在我的UserControl必须显示一个新的(WPF)窗口。 在新窗口中,我想设置所有者。 我这样做:
dialog.Owner = Application.Current.MainWindow;
这工作正常,如果我在WPF程序中使用UserControl。
当我在我的WindowsForms程序中使用UserControl(我在elementHost.Child = ...
设置UserControl)是Application.Current
null。
这不好,我的程序引发exception。
为什么Application.Current
空?
Application.Current对于WPF应用 程序是特定的。
因此,当您在WinForms应用程序中使用WPF控件时,您需要初始化WPF应用程序的实例。 在WinForms应用程序中执行此操作。
if ( null == System.Windows.Application.Current ) { new System.Windows.Application(); }