2012-08-31 91 views
0

我创建了一个简单的应用程序,其中嵌套了ListBox和字符串。如果我滚动它非常快 - 有空的空间。我可以提高渲染速度或 我可以减慢列表框中的滚动速度吗?WP7 Listbox滚动

+1

请问为什么?用户是否真的了解“真快”滚动的信息? – Patrick

回答

0

为了克服滚动时的黑色现象,您需要虚拟化滚动控件。为此,您应该继承IList并创建一个类似于ObservableCollection的Collection,您必须根据缓存需求覆盖默认索引器,同时为项目维护一个缓存。我觉得这可能是你正在寻找的:http://blogs.msdn.com/b/ptorr/archive/2010/08/16/virtualizing-data-in-windows-phone-7-silverlight-applications.aspx

该页面上有一个示例项目。试试看。

我也觉得你面临这个问题http://blog.rsuter.com/?p=258。我想这会使用虚拟化本身来解决。希望它有帮助

+0

这听起来像是很多工作。 :)作为一名开发人员,我明白他为什么要这样做。作为一个用户(虽然有开发人员的想法),我接受空白作为平台的怪癖。 –

+0

我知道这很多工作。我面临同样的问题。有时需要权衡折衷。它帮助我在我的任务这就是为什么建议他也:) –

+0

@MilanAggarwal我们为什么要使用IList?我认为ListBox默认支持** UI虚拟化**,使用VirtualizingStackPanel。 IList对**数据虚拟化**非常有用,并且与黑色事件无关! – onmyway133

0

米兰博客发布的博客是一个很好的来源开始。通过在滚动时更改列表项目的项目模板来虚拟化数据。当布局复杂时,这不会达到预期。

但是我建议你在你正在做的布局上更多地工作。有太多堆栈面板为了使布局有点通用会破坏性能。