当前位置:  开发笔记 > 编程语言 > 正文

Winforms WPF Interop - WPF内容无法绘制

如何解决《WinformsWPFInterop-WPF内容无法绘制》经验,为你挑选了1个好方法。

我有一个使用ElementHost来显示WPF UserControl的WinForm.表单加载时,每50次左右,WPF内容无法绘制.您可以通过WinForm chrome查看下面的内容.调整窗口大小可以显示WPF内容.

这是一个已知的问题?任何人都可以建议解决方法?



1> cplotts..:

我们之前已经打过这些类型的问题.有关我们特定风味的更多信息,请参阅此WPF论坛帖子(我不知道它是否是同一个问题).

我们发现唯一可行的方法是改变ElementHost的大小.

_elementHost.Width++;

这是一个完整的黑客,丑陋,甚至发布它我都很尴尬.但没有别的东西对我们有用.所以,这绝对是一种解决方法.(GRIN)

我们在ElementHost上尝试了Invalidate,Refresh和我们能想到的一切...... 我们还在WPF托管内容上尝试了InvalidateMeasure,InvalidateArrange和InvalidateVisual.没运气.

如果您找到另一种方法来解决问题,我很乐意听到.

祝你好运,我知道我已经失去了一些头发.

更新1: 我已经提交了另一个WPF论坛帖子.也许我们可以得到微软的回复.当然对我来说似乎是个错误.

更新2: 我用上面的黑客修复了刷新问题......我还有另外一个问题需要解决,我觉得这里值得一提.那就是:在屏幕刷新之前有一定的延迟.这使得用户似乎导航到另一个屏幕(它不是......它只是双缓冲缓冲区的内容).我最终不得不在托管ElementHost的Control上手动调用System.Windows.Forms.Control.Refresh().通过这种方式,即使暂停仍然存在...至少屏幕是空白的...并且它看起来不像用户在某处导航...

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有