gpt4 book ai didi

wpf - 工作簿在 Excel 2010 中移动后 ElementHost 不刷新

转载 作者:行者123 更新时间:2023-12-04 21:07:00 29 4
gpt4 key购买 nike

我在 Windows 7 x64、.NET 4.0 上的 Excel 2010 32 位中的 CustomTaskPane 上的 ElementHost 有一个奇怪的问题

移动工作簿窗口后,不会重新绘制主机(或主机本身)内部的控件。
为了说明这一点,我创建了示例:

    _host = new ElementHost { Dock = DockStyle.Fill, BackColorTransparent = false, BackColor = Color.Blue };
_userControl = new UserControl();
_userControl.Controls.Add(_host);
_taskPane = CustomTaskPanes.Add(_userControl, "Pane");
_taskPane.Visible = true;

为简单起见,我省略了子控件,因为结果是相同的。

这是它的预期外观:
enter image description here

现在我移动了一些工作簿,我得到:
enter image description here

显然灰色和黑色区域不是预期的(与实际控制托管的结果相同)。 _host refresh 解决了这个问题——重绘自己和 child ,但问题是我没有在 VSTO 中找到任何事件来检测工作簿何时被移动。

问题:
  • 这些黑色/灰色区域来自哪里?
  • 是否有可能避免/修复它以及如何?
  • (作为一种解决方法)是否可以检测工作簿窗口移动,以便我可以刷新 _host 并祈祷它是唯一发生的情况? (坏主意)

  • 其他测试表明,Windows 窗体控件不会受到这种行为的影响。

    提前致谢。

    最佳答案

    您应该将真正的 XAML 用户控件放入 ElementHost。

    在您的 WPF 用户控件中,使用背景颜色 = 蓝色制作一个网格。

    不要依赖元素宿主本身

    还要检查更新,VSTO 中的 elementHost 有很多错误。

    关于wpf - 工作簿在 Excel 2010 中移动后 ElementHost 不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850127/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com