.net ElementHost-重新打开窗口时为空

.net ElementHost-重新打开窗口时为空,.net,wpf,winforms,.net,Wpf,Winforms,我正在使用非WPF应用程序,因此我只能创建WPF用户控件。我的解决方法是将我的窗口创建为usercontrols,然后创建一个通用winform来承载wpf usercontrol(使用ElementHost)以模拟wpf窗口 在我的开发机器(WinXP VM)上一切正常,但在客户端机器(VM和物理,都是Windows 7)上,Windows将打开一次并正常工作。然而,当他关闭它们然后重新打开时,它们只是一片空白。每次关闭后,窗口都会被关闭和处理(即使我将它们留在内存中,也会发生同样的事情)。客

我正在使用非WPF应用程序,因此我只能创建WPF用户控件。我的解决方法是将我的窗口创建为usercontrols,然后创建一个通用winform来承载wpf usercontrol(使用ElementHost)以模拟wpf窗口

在我的开发机器(WinXP VM)上一切正常,但在客户端机器(VM和物理,都是Windows 7)上,Windows将打开一次并正常工作。然而,当他关闭它们然后重新打开时,它们只是一片空白。每次关闭后,窗口都会被关闭和处理(即使我将它们留在内存中,也会发生同样的事情)。客户端必须关闭应用程序并重新启动它才能再次看到窗口


我已经尝试过添加刷新调用和其他东西,但没有使用elementhost,但没有任何效果。有什么想法吗?!每个窗口都会出现这种情况。

很抱歉将此作为回答发布,因为我还没有发表评论的权利。但我有一些问题或可能的方向要研究

您是否尝试通过附加调试器来查看正在发生的情况?它仍然在获取输入事件、重新绘制事件还是挂起?当窗口重新打开时,您的WPF用户控件是否正在加载?哦,还要确保打破第一次机会的异常,也许这是一个WPF+CLR问题,它甚至没有机会再次加载

Spy++有没有提到可能会告诉您发生了什么的子窗口

哦,这是只发生在他的7胜盒上还是在其他地方也发生了

另一件事,如果您只是创建一个简单的用户控件并执行相同的操作,会发生什么?它会复制吗

如果只是页面中的内容而不是新窗口中的内容,是否会重新编程

尝试一些简单的东西,比如我在搜索时发现的这篇文章,看看是否有其他人有这个问题。

发布重现问题的代码。没有太多,只有ElementHost.Child=new WPFUserControl();正如我所说,所有的用户控件都有这个问题,但只有在windows 7上。这里有一篇关于它们之间互操作的gotchas的老文章。不知道他们谈论的部分是否是问题所在。本页还提到了Win7的问题。由于某些原因,当WPF控件位于单独的dll中时,它对它们有效。在我等待你对这些评论之前,还有一个发现。我在你的windows上发现了这一点,也许这是另一件需要研究的事情,它是关于滚动条的,但在某些方面提醒了我你的问题:如果你阅读了我的问题,它表明它在XP机器上工作,而不是Windows7机器上。我正在使用一个用户控件,并将其托管在WinForm的ElementHost控件中。无论使用什么WPF usercontrol,它都会这样做(在我的应用程序中有很多)。发生在它被处理或留在记忆中。我已经修改了OnPaint方法,但没有任何帮助。WPF控件也已经在单独的DLL中。在同一个DLL中也不工作。你的第二个评论链接有一个有趣的解决方法,我将尝试。谢谢.ElementHost.Child=WPFControl;var g=ElementHost.CreateGraphics();g、 处置();在窗体的OnLoad方法中。