以编程方式从WPF应用程序打开WinForm窗体

3
我该如何从WPF应用程序中打开WinForm窗体?这需要通过代码完成,但正常的功能不起作用。
Form.Show(); 

不起作用。我需要一些可以让我改变表单可见性的东西,但是我无法访问该表单内任何与GUI相关的函数。


“不起作用”是什么意思?你有错误吗?如果有,是什么错误?没有明显的原因说明为什么这不能工作,所以你需要提供更多信息。 - Joe White
无法工作在这种情况下意味着我无法在所述表单上调用 show 函数。我正在尝试从解决方案中的另一个项目访问此表单。由于某种原因,在 winforms 项目调用它时可以工作,但在 wpf 项目上却不行。 - Tim
1个回答

3

只要您具有正确的引用,您可以在WPF应用程序中与Windows表单以与Windows表单应用程序相同的方式进行操作。以下代码可行:

YourForm form = new YourForm();
form.Show();

然而,我通常建议尝试将Windows Forms内容作为UserControl包含在WPF窗口中,并使用WindowsFormsHost控件。这样做会更加清晰,因为窗口的父子关系会更加明确(因为它们都是WPF窗口)。


@Tim 确保你的表单定义正确 - 但它应该很简单... 你的表单有编译错误吗?现在是否不能从 Form 派生? - Reed Copsey
我得等回到工作岗位后再看代码,不过我打算尝试使用 WindowsFormsHost 托管该表单,看看是否有帮助。 - Tim
今天我打开了这个项目并测试了一下,它可以正常工作。这可能是由于 Visual Studio 的构建问题或者 bug。 - Tim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接