gpt4 book ai didi

c# - 使 VirtualizingStackPanel 不清理已加载的项目

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

有没有办法让 Windows Phone 中的 VirtualizingStackPanel 只清理/重新虚拟化尚未加载的项目?

为了进一步解释我想要的内容:当我使用带有图像的沉重 ItemTemplate 加载大量项目时,我会使用 VirtualizingStackPanel 来避免堵塞UI 并等待所有元素都绘制到屏幕上。

如果您在列表中向下滚动时很好并且很慢,这很好。但问题是当您再次向上滚动查看已经加载过一次的项目时。由于 VirtualizingStackPanel 现在已经清理了那些需要再次加载的元素。

我希望那些已经加载的项目不要被清理。

我不知道他们是怎么做到的,但 IMDb 应用程序似乎在他们的前 250 名后 100 名 电影列表中使用了类似的东西。我还注意到它们不会在您滚动时加载图像,因此它不会阻塞 UI,除非您在列表中静止不动。

非常感谢任何帮助!

最佳答案

作为警告,我的建议来自 WPF 背景,而不是 Silverlight 或 WP7。但根据我的经验,它们并没有什么不同。

首先我会检查是否更改了 VirtualizationMode帮助。将其设置为回收可能已经提高了性能。

否则做你想做的事情会更具挑战性。您需要创建自己的 VirtualizingPanel,并将其设置为管理动态创建的项目。给你找一套不错的文章here .但是,与其清除“曾经可见但现在再次虚拟化的项目”,不如保留它们,以便最终实现所有项目。我知道它有点含糊,我在这里有代码,如果需要我可以将其用于我们的自定义工具栏,我可以发布其中的一些来解释如何做到这一点。 (同样不能保证它也适用于 WP7)。

最好的问候

关于c# - 使 VirtualizingStackPanel 不清理已加载的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7719153/

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