Ни для кого не секрет, что WPF и Windows Forms могут работать совместно. И сегодня мы рассмотрим такой вид интеграции этих технологий как вызов окна WPF из Windows Forms приложения.
Для работы необходимо, чтобы вызываемое окно располагалось в dll библиотеке, которая создана как «Библиотека настраиваемых элементов управления WPF» или «Библиотека пользовательских элементов управления WPF».
Также на стороне вызывающего приложения или библиотеки с формой Windows Forms были подключены следующие сборки:
- PresentationCore;
- WindowsBase;
- WindowsFormsIntegration.
Их подключение показано на скриншотах.
Теперь можно вызывать окно WPF.
1 2 3 |
WindowWpf form = new WindowWpf(); ElementHost.EnableModelessKeyboardInterop(form); form.Show(); |
Как мы видим, он отличается от вызова обычного WinForms окна только вызовом метода EnableModelessKeyboardInterop класса ElementHost, который позволяет WPF окну получать реагировать на клавиатуру при открытии в немодальном режиме. При открытии окна в модальном режиме (ShowDialog) этот метод вызывать не требуется.
Это позволяет легко интегрировать функционал реализованный на WPF в Windows Forms приложение.
Добавить комментарий