Смешивание WPF с помощью приложения WinForm?
Мое довольно большое приложение WinForm нуждается в капитальном ремонте графического интерфейса, но я не могу позволить себе все это сделать сразу. Мне нужно знать, могу ли я медленно добавлять в него WPF, и если да, то как?
Можно ли добавлять диалоги WPF?
Можно ли добавлять панели WPF в WinForm, чтобы я мог встраивать элементы WPF?
ИЗМЕНИТЬ
Можно ли сделать обратное и установить диалоги WinForm в моем приложении WPF?
Ответы
Ответ 1
Да, вы можете размещать элементы управления WPF в своих приложениях WinForms:
Пошаговое руководство: размещение трехмерного составного элемента управления WPF в форматах Windows
Пошаговое руководство: размещение составного элемента управления WPF в форматах Windows
Ответ 2
Да, я успешно сочетал winforms и WPF. Мне даже удалось добавить окна WPF в приложения win32, поменять это приложение на dll и использовать WPF-приложение для отображения окон win32, в которых отображаются окна WPF.
Для размещения окон WPF в WinForm или win32-приложениях вам понадобится эта строка для вас .Show() ваш WpfWindow:
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(myWpfWindow);
См. http://msdn.microsoft.com/en-us/library/aa348549.aspx
Ответ 3
Элемент управления ElementHost можно найти в пространстве имен System.Windows.Forms.Integration. Вам понадобится ссылка на сборку WindowsFormsIntegration (в WindowsFormsIntegration.dll)
Этот элемент управления представляет собой пустой контейнер, в который вы можете поместить элементы управления WPF, например.
myElementHost.Child = someWpfControl;
Вы можете найти его в своем инструменте и перетащить его на winform, как любой другой элемент управления;
![введите описание изображения здесь]()