Как добавить окно WPF в приложение WinForms - PullRequest
7 голосов
/ 29 июня 2010

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

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

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

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

РЕДАКТИРОВАТЬ: Благодаря pst я нашелответ.Вот фрагмент:

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

1 Ответ

6 голосов
/ 29 июня 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...