Можно ли использовать оба элемента управления WPF и Windows в одном приложении? Насколько сложно или практично идея?
Можно ли смешивать WPF и WinForms в приложении?
Ответ 1
Я считаю, что есть элемент управления WindowsFormsHost, который вы можете поместить в свои приложения WPF, которые будут взаимодействовать с кодом WinForms:
Ответ 2
Довольно просто размещать элементы управления WPF в приложении WinForms с помощью адаптера ElementHost
или WinForms в приложении WPF с адаптером WindowsFormsHost
. Однако в Интернете не так много ресурсов, показывающих, как это сделать. В процессе обучения, как сделать это для себя, я быстро обнаружил присущие симметрии между двумя путями. Я перегнал все свои заметки в статью, сравнивая и противопоставляя эти симметрии с использованием уникального подхода: статья действительно две бок о бок статьи, сравнивая каждый шаг в деталях, начиная с создания пользовательского элемента управления в одной технологии до его размещения в применение в "противоположной" технологии. Моя статья, опубликованная на SimpleTalk.com в августе 2010 года, доступна здесь: Смешивание WPF и WinForms.
Для полноты, вот пара хороших ссылок MSDN, по одному для каждого пути. Фактически, демонстрационное решение, сопровождающее мою статью, начиналось с двух из них:
Ответ 3
Мы размещали значительно сложные элементы управления WPF в существующем приложении LOB WinForms. Это можно сделать, но у нас были проблемы (некоторые из них, несомненно, вызваны крутой кривой обучения). В первую очередь это связано с тем, что события с потерями фокуса не срабатывают, когда они ожидаются, а также проблемы с клавиатурой.
Ответ 4
При размещении не WPF-контента (будь то HTML, WinForms или содержимое Win32) у вас будет Airspace вопросы. Это означает, что вы не можете полностью компонировать содержимое WPF с размещенным контентом. Вы также не можете его анимировать и т.д. Есть некоторые интересные проблемы в отношении scrollviewers см. Здесь для получения более подробной информации и исправления.
Ответ 5
Вы также можете использовать элементы управления HWNDSource и HWNDHost для встраивания элементов управления WPF в WinForms (или любое приложение Win32, действительно).
Ответ 6
Да, вы можете, как Windows Forms в приложении WPF, так и WPF-элементы управления в Windows Forms. www.novamind.com приложение для сопоставления образов - это успешное сочетание двух технологий.