Windows phone 7 对于不同高度的列表(20-30)项目,我应该使用什么?

Windows phone 7 对于不同高度的列表(20-30)项目,我应该使用什么?,windows-phone-7,windows-phone-7.1,Windows Phone 7,Windows Phone 7.1,我有很多不同尺寸的东西。它们可以包含一张或两张图片 我在ScrollViewer中使用了ListBox,滚动速度很快,但初始化需要时间 我试着只使用ListBox或LongListSelector,但我不能说它有效:滚动非常容易跳,有些滞后 对于这些项目,我可以使用什么来实现足够快的初始化和平滑的滚动?为了克服滚动时出现的黑色问题,您需要虚拟化滚动控件。为此,您应该继承IList并创建一个类似于ObservableCollection的自己的集合,在该集合中,您必须根据缓存要求覆盖默认索引器,同

我有很多不同尺寸的东西。它们可以包含一张或两张图片

我在ScrollViewer中使用了ListBox,滚动速度很快,但初始化需要时间

我试着只使用ListBox或LongListSelector,但我不能说它有效:滚动非常容易跳,有些滞后


对于这些项目,我可以使用什么来实现足够快的初始化和平滑的滚动?

为了克服滚动时出现的黑色问题,您需要虚拟化滚动控件。为此,您应该继承IList并创建一个类似于ObservableCollection的自己的集合,在该集合中,您必须根据缓存要求覆盖默认索引器,同时维护项目的缓存。我觉得这可能就是你想要的:

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


我也觉得你正面临这个问题。我想这将通过虚拟化本身来解决。对于初始化,使用延迟加载。希望它有帮助

为了克服滚动时出现的黑色问题,您需要虚拟化滚动控件。为此,您应该继承IList并创建一个类似于ObservableCollection的自己的集合,在该集合中,您必须根据缓存要求覆盖默认索引器,同时维护项目的缓存。我觉得这可能就是你想要的:

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


我也觉得你正面临这个问题。我想这将通过虚拟化本身来解决。对于初始化,使用延迟加载。希望它有帮助

在ScrollViewer中您不需要列表框,除非您需要滚动列表之外的项目。列表会自动滚动。@WilliamMelani我在ScrollViewer中使用ListBox,因为它滚动得更快更平滑。当项目具有固定大小时,我对ListBox没有问题。在这种(问题)情况下,项目可能会非常不同,其中一些项目可能比屏幕长。在ScrollViewer中,您不需要列表框,除非您需要滚动列表之外的项目。列表会自动滚动。@WilliamMelani我在ScrollViewer中使用ListBox,因为它滚动得更快更平滑。当项目具有固定大小时,我对ListBox没有问题。在这种(问题)情况下,项目可能非常不同,其中一些项目可能比屏幕长。