2012-01-27 87 views
3

如何从wpf应用程序打开winform?这需要通过代码完成,但正常功能以编程方式从wpf应用程序打开winform

Form.Show(); 

将不起作用。我需要一些能让我改变表单可见性的东西,但是我不能访问这个表单中的任何与gui相关的函数。

+0

你是什么意思的“不会工作”?你有错误吗?如果是这样,那是什么?没有明显的原因,为什么这不起作用,所以你需要提供更多的信息。 – 2012-01-27 22:58:56

+0

在这种情况下,将无法正常工作,因此在窗体上调用时无法访问show功能。我试图从解决方案中的另一个项目访问此表单。出于某种原因,它在winforms项目调用它时起作用,而不是wpf项目。 – Tim 2012-01-28 00:48:41

回答

3

如果您有适当的参考,您可以像使用Windows窗体应用程序一样使用Windows窗体,方式与WPF应用程序相同。这应该很好地工作:

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

不过,我通常会建议试图返工这包括Windows窗体内容为使用WindowsFormsHost控制WPF窗口内的用户控件。这往往是一个更清洁,因为窗口父母工作更干净一点(因为他们都是WPF窗口)。

+0

@Tim确保你的表单是正确定义的 - 但它应该是这样简单的...你是否在表单上看到编译器错误?现在不是以某种方式从窗体派生出来的吗? – 2012-01-28 01:26:56

+0

当我重新开始工作时,我将不得不查看代码,但是我将尝试从WindowsFormsHost承载该表单并查看是否有帮助。 – Tim 2012-01-28 15:00:15

+0

那么,我今天打开这个项目并测试一下。有效。它一定是VS的一些构建问题/错误。 – Tim 2012-01-30 13:32:51