首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使VirtualizingStackPanel不清理已加载的项

使VirtualizingStackPanel不清理已加载的项
EN

Stack Overflow用户
提问于 2011-10-10 21:55:21
回答 1查看 579关注 0票数 2

是否有任何方法使Windows中的VirtualizingStackPanel仅在尚未加载的情况下清理/重新虚拟化项目?

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

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

我想要的是那些已经装货的物品不被清理。

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

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2011-10-11 10:40:19

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

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

否则,做你想做的事情就会更有挑战性。您需要创建自己的VirtualizingPanel,并将其设置为动态管理创建项。您可以找到一组很好的文章,这里。但是,与其清除“曾经可见但现在再次虚拟化的项目”,您只是保留它们,从而最终实现了所有的项目。我知道这有点模糊,我这里有代码,我在这里使用的定制ToolBar,如果有必要,我可以张贴一些,以解释如何做到这一点。(同样没有保证它也适用于WP7 )。

诚挚的问候

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7719153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档