如何将现有的Form类从WinForms应用程序插入到WPF应用程序中

时间:2014-01-01 20:19:14

标签: c# .net wpf winforms

我在名为Form1的应用程序中创建了一个名为AMC_Demo的表单。如何从WinForms应用程序导入Form1到WPF应用程序,一步一步?

AMC_Demo的来源目录中,我有Form1.csForm1.Designer.cs Form1.resx。哪个以及如何复制到WPF项目目录以及如何导入它们以便我可以在WPF解决方案中修改和开发它。

我已添加对System.Windows.FormsWindowsFormsIntegration

的引用

如何将表单对象直接导入WPF项目?我确实要问,因为我已经尝试复制到WPF项目目录然后添加现有项目但是它被添加到项目中:“其他解决方案“据我记忆。

2 个答案:

答案 0 :(得分:2)

您应该能够在WPF应用程序中创建表单并显示它:

// Within some method where you want the form to display
Form1 form = new Form1();
form.Show();
仅当您要在WPF WindowsFormsHost中嵌入Windows窗体UserControl(或其他Control)时,才需要

FrameworkElement

答案 1 :(得分:1)

阅读this演练,您会看到WinFormHost是WinForm Form类的特殊实例。您可以以编程方式将控件添加到其中。

对于现有的Form类:将表单对象导入到项目中(如同,确保您可以编辑它),然后从" Form"中更改它的继承。到" WinFormHost"。您现在可以实例化它并将其添加到WPF窗口,就像使用WinFormHost一样。

编辑:正如我的评论中所述:您将文件复制到WPF项目文件夹中,然后在VS中右键单击项目并选择"添加现有项目"。然后选择您复制的文件。您可能需要添加一些与WinForm相关的.Net库的引用以供编译,但编译错误应该可以帮助您。不要复制任何项目文件(如.csproj)。这些可能会显示为"其他解决方案"。