То, что вы можете искать, это ElementHost
элемент управления. Он позволяет вам брать содержимое WPF и размещать его в окне Windows Forms. Более подробная информация здесь:
http://msdn.microsoft.com/en-us/library/ms745781.aspx
Существует также элемент управления, который позволяет делать наоборот: размещать содержимое Windows Forms из WPF:
http://nayyeri.net/host-windows-forms-controls-in-wpf
Между ними вы можете перемещать «разделительную линию» между WPF и Windows Forms с некоторой степенью гибкости.
Есть одна оговорка, о которой вам нужно помнить. Windows Forms внутренне работает в терминах HWND
... окна, управляемого старым оконным менеджером Windows (который обрабатывает z-порядок). WPF этого не делает ... Дерево WPF обычно визуализируется в один HWND
', и именно WPF управляет такими вещами, как z-порядок. Для вас это означает, что z-порядок не всегда работает так, как вы ожидаете, и есть вещи, которые вы не можете сделать с размещенными элементами управления Windows Forms, которые вы можете сделать с традиционными элементами WPF. (На самом деле существует способ решить эту проблему, но он включает в себя периодическую визуализацию HWND в битовую карту памяти, рендеринг этой битовой карты в поверхность WPF, а затем перенаправление событий, направленных на поверхность WPF, в базовый HWND
. но сложно и сложно получить права.)