在ElementHost中托管的WPF元素未正确重绘

时间:2012-12-20 23:17:59

标签: c# wpf elementhost hwndsource

我正在编写一个程序来在C#中实现COM组件。该组件也提供了UI组件。为了便于实现组件的未来添加,我决定使用WPF在Xaml中编写UI并将其包装在ElementHost控件中,以便将句柄提供给COM使用者。

这是有趣的地方。该元素托管在win32选项卡控件中。第一次选中选项卡时,它会正常加载。切换到另一个选项卡并返回会导致它无法正确绘制组件。如果我将鼠标移动到它,它将绘制TextBox元素,但它永远不会重绘整个UserComponent。

我已经尝试了我所见过的所有可能的解决方案,从更改组件的高度/宽度值到将HwndTarget置于SoftwareOnly渲染模式。

我不确定在这一点上尝试什么,所以欢迎提出建议。我真的很想在不使用Windows Forms的情况下这样做,因为未来的维护者不是最好的程序员,告诉他们用数据绑定写一个Xaml文件比手动布局表单和设置更容易代码隐藏中的值。

1 个答案:

答案 0 :(得分:0)

还没有遇到这样的问题。 切换到托管选项卡时,尝试强制刷新或关注(方法)到托管包装器或HwndSource。