Как добавить окно WPF в приложение WinForms

Я создаю окно HUD для проверки бизнес-объектов в моем приложении WinForms.

Я хотел иметь совершенно другой стиль окна (минимизировать область содержимого и показывать только заголовок, никаких системных кнопок и т. д.), Поэтому я создал приложение WPF для этого.

проблема в том, что я хочу, чтобы это окно "жило" внутри моего приложения WinForms. Я не могу просто добавить WPF как OwnedForm или установить основную форму как владельца WPF окно.

Итак, как этого достичь?

EDIT: благодаря pst я нашел ответ. Вот фрагмент:

System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(_inspector);
WindowInteropHelper inspectorHelper = new WindowInteropHelper(_inspector);
inspectorHelper.Owner = this.Handle;
_inspector.Show();

1 ответов


Окно WPF имеет дескриптор/контекст окна Win32.

посмотреть WindowInteropHelper. Вы можете использовать это с Win32 (или, возможно, есть поддержка WinForms?) установить окно владельца окна WPF. Имейте в виду, что дескриптор не существует до "инициализации источника" (?) событие.

однако, используя только WinForms, вы можете настроить заголовок столько, сколько вам нужно (вы можете перезаписать сам рисунок через Win32, и я думаю, что вы потеряете все блоки управления не заходя так далеко).

есть много результатов google по этой теме, Если вы используете правильные ключевые слова.