• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Открываем окно WPF в приложении Windows Forms

Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,588
Баллы
155
Ни для кого не секрет, что WPF и Windows Forms могут работать совместно. И сегодня мы рассмотрим такой вид интеграции этих технологий как вызов окна WPF из Windows Forms приложения.


Для работы необходимо, чтобы вызываемое окно располагалось в dll библиотеке, которая создана как «Библиотека настраиваемых элементов управления WPF» или «Библиотека пользовательских элементов управления WPF».


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Также на стороне вызывающего приложения или библиотеки с формой Windows Forms были подключены следующие сборки:

  • PresentationCore;
  • WindowsBase;
  • WindowsFormsIntegration.

Их подключение показано на скриншотах.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.




Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Теперь можно вызывать окно WPF.

WindowWpf form = new WindowWpf();
ElementHost.EnableModelessKeyboardInterop(form);
form.Show();

Как мы видим, он отличается от вызова обычного WinForms окна только вызовом метода EnableModelessKeyboardInterop класса ElementHost, который позволяет WPF окну получать реагировать на клавиатуру при открытии в немодальном режиме. При открытии окна в модальном режиме (ShowDialog) этот метод вызывать не требуется.

Это позволяет легко интегрировать функционал реализованный на WPF в Windows Forms приложение.
 
Вверх Снизу