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();
}