我正在编写一个程序来在 C# 中实现 COM 组件。该组件也提供了一个 UI 组件。为了便于实现组件的未来添加,我决定使用 WPF 在 Xaml 中编写 UI,并将其包装在 ElementHost 控件中,以便将句柄返回给 COM 使用者。
这就是有趣的地方。该元素托管在 win32 选项卡控件中。第一次选择选项卡时,它加载正常。切换到另一个选项卡并返回会导致它无法正确绘制组件。如果我在其中移动鼠标,它将绘制 TextBox 元素,但它永远不会重绘整个 UserComponent。
我已经尝试了我看到的所有可能的解决方案,从更改组件的高度/宽度值到将 HwndTarget 置于 SoftwareOnly 呈现模式。
我不确定此时要尝试什么,因此欢迎提出建议。我真的很想在不使用 Windows 窗体的情况下做到这一点,因为它的未来维护者不是最好的程序员,告诉他们编写一个带有数据绑定的 Xaml 文件比手动布局表单并设置要容易得多代码隐藏中的值。