Обходного пути для этого не существует, если вы хотите, чтобы содержимое WPF и Windows Forms разделяло одно и то же окно.
Рендеринг WPF осуществляется через Direct3D, в то время как Windows Forms использует GDI +, который в конечном счете основан на старом рендеринге GDI32.механизмы.Сама Windows не предоставляет способ рендеринга в одну и ту же область окна с помощью этих двух разных технологий - в итоге вы получаете HWND, принадлежащий и обрабатываемый Direct3D (как используется WPF), и другой HWND, принадлежащий и отображаемый WindowsФормы.Эти HWND разделяют пространство в содержащем их окне между ними и не могут перекрываться.
Если вы хотите перекрывать содержимое WPF и Windows Forms, единственный поддерживаемый способ сделать это - поместить их в отдельный верхний уровеньWindows - Windows поддерживает поддержку перекрывающегося содержимого Win32 и Direct3D на уровне рабочего стола.Вы можете использовать прозрачность для каждого пикселя, чтобы создать непрямоугольное окно (либо в WPF, либо в Windows Forms).Таким образом, вы можете отключить все границы окна в своем приложении WPF и сделать фон прозрачным, а если вы включили прозрачность, вы можете расположить это окно точно в том же месте на экране, что и окно Windows Forms, и в этот моменттеперь вы можете иметь содержимое WPF поверх содержимого Windows Forms.
Нет необходимости говорить, что это утомительная вещь.Но, к сожалению, это то, что вам нужно сделать, если вам действительно нужен контент WPF поверх контента Windows Forms - вам нужно поместить контент WPF в отдельное окно.