gpt4 book ai didi

c# - 延迟绘制 WindowsFormsHost?

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:08 26 4
gpt4 key购买 nike

有没有办法延迟 WindowsFormsHost 的绘制?它托管在 WPF 中。

它承载一个 COM 对象,它是一个 ESRI ArcEngine AxTocControl。从视觉上看,它看起来像一个目录选项卡。

我正在从目录中删除一些对象并在单个函数中添加不同的对象。

当我删除一个对象时,TOC 控件闪烁并删除对象,然后我添加一个对象,它闪烁并添加一个对象。由于我要添加和删除 20 个对象,它会闪烁 20 次。我想延迟绘图 - 完成我的所有操作 - 然后继续绘图 - 希望我只会闪烁 1 或 2 次。

总而言之,是否有一种功能或技术(我不在乎它有多老套)来延迟 WindowsFormHost 的绘制 - 让某些事情执行 - 然后继续绘制?

最佳答案

好吧,您可以为此特定场景创建自己的 WindowsFormsHost 子类并覆盖 WndProc .从那里,您可以决定静默忽略(通过不调用 base.WndProc)所有 drawing-related messages只要“抑制更新”条件成立。

您可以按照自己喜欢的任何方式实现条件,例如在您的类中设置一个公共(public) PausePainting()/ResumePainting() 方法来设置一个 bool 字段。

例如,您还必须记住重新绘制。 ResumePainting() 被调用,因为您不希望您的控件永不更新。

最终它不会像 A-B-C 那样简单,但这个概念很合理,所以它应该可行。

关于c# - 延迟绘制 WindowsFormsHost?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5345403/

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