Как добавить окно 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 по этой теме, Если вы используете правильные ключевые слова.