Смешивание WPF с помощью приложения WinForm?

Мое довольно большое приложение WinForm нуждается в капитальном ремонте графического интерфейса, но я не могу позволить себе все это сделать сразу. Мне нужно знать, могу ли я медленно добавлять в него WPF, и если да, то как?

Можно ли добавлять диалоги WPF?

Можно ли добавлять панели WPF в WinForm, чтобы я мог встраивать элементы WPF?

ИЗМЕНИТЬ

Можно ли сделать обратное и установить диалоги WinForm в моем приложении WPF?

Ответы

Ответ 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, как любой другой элемент управления;

введите описание изображения здесь