C# 如何将现有表单类从WinForms应用程序插入WPF应用程序
我在名为C# 如何将现有表单类从WinForms应用程序插入WPF应用程序,c#,.net,wpf,winforms,C#,.net,Wpf,Winforms,我在名为AMC\u Demo的应用程序中创建了一个名为:Form1的表单。如何将Form1从WinForms应用程序逐步导入WPF应用程序 在AMC\u Demo的源目录中,我有Form1.cs,Form1.Designer.csForm1.resx。我应该如何复制到WPF项目目录中,以及如何导入它们,以便在WPF解决方案中进行修改和开发 我已经添加了对:System.Windows.Forms和WindowsFormsIntegration 如何将表单对象导入WPF项目?我确实会问,因为我曾尝
AMC\u Demo
的应用程序中创建了一个名为:Form1
的表单。如何将Form1
从WinForms应用程序逐步导入WPF应用程序
在AMC\u Demo
的源目录中,我有Form1.cs
,Form1.Designer.cs
Form1.resx
。我应该如何复制到WPF项目目录中,以及如何导入它们,以便在WPF解决方案中进行修改和开发
我已经添加了对:System.Windows.Forms
和WindowsFormsIntegration
如何将表单对象导入WPF项目?我确实会问,因为我曾尝试复制到WPF项目目录,然后添加现有项,但据我记忆所及,它是作为“其他解决方案”添加到项目中的。您应该能够从WPF应用程序中创建并显示表单:
// Within some method where you want the form to display
Form1 form = new Form1();
form.Show();
WindowsFormsHost
仅当您希望在WPFFrameworkElement
中嵌入Windows窗体UserControl
(或其他控件
)时才需要。阅读本演练,您可以看到WinFormHost是WinForm窗体类的一个特殊实例。您可以通过编程方式向其中添加控件
对于现有表单类:将表单对象导入到项目中(如中所示,请确保可以编辑它),然后将其继承从“表单”更改为“WinFormHost”。您现在可以实例化它并将其添加到WPF窗口,就像使用WinFormHost一样
编辑:如我在评论中所说:将文件复制到WPF项目文件夹中,然后在VS中右键单击项目并选择“添加现有项”。然后选择复制的文件。您可能需要添加一些对WinForm相关.Net库的引用,以便对其进行编译,但编译错误应该会对您有所帮助。不过,不要复制任何项目文件(如.csproj)。这些可能会显示为“其他解决方案”。谢谢,但我想从这个
AMC\u演示项目中复制Form1。我不想从头开始创建它。@Yoda只需从WPF添加对此项目的引用,并使用现有表单即可。无需从头开始创建。是否可以从AMC_DEMO
物理添加表单,使其显示在WPF
app solution explorer中?@Yoda是-只要复制文件,并将其添加到其他项目,如果您想这样做的话。不过,您需要添加对System.Windows.Forms
的引用。在选项2中,如何将表单对象示例导入WPF项目。在AMC\u Demo
的源目录中,我有Form1.cs
,Form1.Designer.cs
Form1.resx
。我应该复制到WPF项目目录中的哪一个以及如何复制到WPF项目目录中,以及如何导入它们,以便我可以在WPF目录中对其进行修改。您必须将这三个项目都复制到WPF项目文件夹(或为此而创建的子文件夹),然后在Visual Studio中选择“添加现有项”。如果表单引用了其他类和控件,则在向原始项目添加引用时,不需要复制这些类和控件。正如Reed Copsey所说,您可能需要添加对某些WinForm.Net库的引用。