我有一个使用ElementHost来显示WPF UserControl的WinForm.表单加载时,每50次左右,WPF内容无法绘制.您可以通过WinForm chrome查看下面的内容.调整窗口大小可以显示WPF内容.
这是一个已知的问题?任何人都可以建议解决方法?
我们之前已经打过这些类型的问题.有关我们特定风味的更多信息,请参阅此WPF论坛帖子(我不知道它是否是同一个问题).
我们发现唯一可行的方法是改变ElementHost的大小.
_elementHost.Width++;
这是一个完整的黑客,丑陋,甚至发布它我都很尴尬.但没有别的东西对我们有用.所以,这绝对是一种解决方法.(GRIN)
我们在ElementHost上尝试了Invalidate,Refresh和我们能想到的一切...... 我们还在WPF托管内容上尝试了InvalidateMeasure,InvalidateArrange和InvalidateVisual.没运气.
如果您找到另一种方法来解决问题,我很乐意听到.
祝你好运,我知道我已经失去了一些头发.
更新1: 我已经提交了另一个WPF论坛帖子.也许我们可以得到微软的回复.当然对我来说似乎是个错误.
更新2: 我用上面的黑客修复了刷新问题......我还有另外一个问题需要解决,我觉得这里值得一提.那就是:在屏幕刷新之前有一定的延迟.这使得用户似乎导航到另一个屏幕(它不是......它只是双缓冲缓冲区的内容).我最终不得不在托管ElementHost的Control上手动调用System.Windows.Forms.Control.Refresh().通过这种方式,即使暂停仍然存在...至少屏幕是空白的...并且它看起来不像用户在某处导航...