18

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

dialog.Owner = Application.Current.MainWindow;

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

当我在我的 WindowsForms 程序中使用 UserControl 时(我在 ElementHost 中设置了 UserControl elementHost.Child = ...)为Application.Current空。

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

为什么为Application.Current空?

4

1 回答 1

40

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

if ( null == System.Windows.Application.Current )
{
   new System.Windows.Application();
} 
于 2013-02-07T14:50:32.027 回答