Поместить форму WinForms в тег WindowsFormsHost в форме WPF - ошибка.Но вы можете создать новую форму из любого проекта WPF.Вот как:
Скажем, у вас есть два проекта "WinFormProj" и "WPFProj".WinFormProj имеет форму «Login».
Сначала добавьте ссылку в проекте WPFProj в WinFormProj.
Затем, после любого события в любом элементе WPFProj, сделайте следующее:
var winFormWindow = new WinFormProj.Login();
winFormWindow.Show();
// or
windFormWindow.ShowDialog();
Если этого не произойдет, вы можете преобразовать форму WinForms в пользовательский элемент управления, который будет просто великолепно существовать в тэге WindowsFormsHost WPF.Для этого часто просто ...
Перейти к объявлению класса и изменить:
public class Login : Form
на
public class Login : UserControl
Далее в вашемWPF-форму, добавьте проект WinForms в виде пространства имен xml:
xmlns:winForms="clr-namespace:WinFormsProj;assembly=WinFormsProj"
И, наконец, добавьте это в свою Grid / StackPanel / независимо от того, где вы хотите разместить пользовательский элемент управления:
<WindowsFormsHost Name="LoginControl">
<winForms:LogIn />
</WindowsFormsHost>
Довольно просто, когда вы его демистифицируете.