Application.Current в ElementHost имеет значение null

Я использую WPF UserControl в своих личных Libs. Libs включены в мои программы WPF и WindowsForms. Теперь мой UserControl должен показать новое (WPF) окно. В новом окне я хочу установить владельца. Я делаю это так:

dialog.Owner = Application.Current.MainWindow;

Это отлично работает, если я использую UserControl в программе WPF.

Когда я использую UserControl в моей программе WindowsForms (я устанавливаю UserControl в ElementHost elementHost.Child = ...), это Application.Current null.

Это не очень хорошо, и моя программа выдает исключение.

Почему Application.Current null?

Ответы

Ответ 1

Application.Current специфичен для приложения WPF.
Поэтому, когда вы используете элементы управления WPF в приложении WinForms, вам необходимо инициализировать экземпляр приложения WPF. Сделайте это в своем приложении WinForms.

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