gpt4 book ai didi

wpf - 在 WPF 中延迟呈现自定义控件

转载 作者:行者123 更新时间:2023-12-04 14:23:34 25 4
gpt4 key购买 nike

我有一个 WPF 自定义控件,有时需要一段时间才能在某些复杂场景中呈现。我希望能够告诉我的自定义控件显示占位符图像(例如“请稍候 - 渲染!”),然后在空闲时间实际渲染控件(处理输入后)。

我正在考虑修改我的自定义控件以容纳父网格和两个子网格:A)占位符图像和 B)实际内容。默认情况下 A) 是可见的,当自定义控件的可见性发生变化时,我可以 BeginInvoke 一个委托(delegate),该委托(delegate)将依次显示 B) 而不是 A)。

如果屏幕上有很多/几个这样的控制实例,他们希望在同时渲染所有这些实例时不会阻塞主线程。由于委托(delegate)排队的优先级低于输入优先级,因此 UI 理论上应该保持非常灵敏。

有没有人遇到过类似的问题?

最佳答案

是的,这种方法会很好用,我已经用过好几次了。

通常,如果控件需要在渲染之前检索和/或处理数据,我会使用这种方法。我建议在后台线程上完成所有这些工作,然后使用元素的 Dispatcher 调用实际的渲染更新。

提示:我经常会声明一个名为 Revision 的 int 类型的内部 DP,并将其注册到 AffectsRender。然后,一旦后台线程完成了繁重的处理,它就可以调用 BeginInvoke() 来增加 Revision 属性,从而使渲染无效并导致新的渲染 channel 。然后,您可以像往常一样在 OnRender 覆盖中执行适当的渲染逻辑。

关于wpf - 在 WPF 中延迟呈现自定义控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282883/

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