Windows phone 7 数据模板中的Windows Phone动态布局

Windows phone 7 数据模板中的Windows Phone动态布局,windows-phone-7,windows-phone-8,Windows Phone 7,Windows Phone 8,我需要有一个列表框项目内的动态布局 Facebook上的新闻提要就是这种布局的一个例子。为了简化,让我们将其缩小为一种新闻项目类型:有人添加了N张照片。我已经有了一个算法,可以计算图像大小并生成最佳布局 我不想有20个图像的边界宽度,高度,边距,可见性 我必须启用虚拟化 如何在Windows phone平台上执行此操作?最简单的方法: 将ItemsControl放置在列表框项中。根据布局算法的要求设置ItemsControl的宽度和高度。将ItemsPanel设置为网格。在数据模板中,放置一

我需要有一个列表框项目内的动态布局

Facebook上的新闻提要就是这种布局的一个例子。为了简化,让我们将其缩小为一种新闻项目类型:有人添加了N张照片。我已经有了一个算法,可以计算图像大小并生成最佳布局

  • 我不想有20个图像的边界宽度,高度,边距,可见性

  • 我必须启用虚拟化

如何在Windows phone平台上执行此操作?

最简单的方法:

将ItemsControl放置在列表框项中。根据布局算法的要求设置ItemsControl的宽度和高度。将ItemsPanel设置为网格。在数据模板中,放置一幅图像,根据布局算法设置边距

图像不会被虚拟化,listbox项(包含带有图像的整个ItemsControl)将被虚拟化

最正确的方法(仅当您有多个图像和/或大图像以至于单个项目超过2048px时才需要):

从例如VirtualzingStackPanel继承,覆盖MeasureOverride和ArrangeOverride以实现自定义布局,然后花2-10天时间修复代码中与虚拟化相关的问题。这种方式虚拟化了一切,但是时间是估计的(我自己从来没有做过),我不能保证你最终会成功

中间方法: 重新设计布局算法,以便在行中布局图像。使用单个虚拟化列表框或ItemsControl,将项目拆分为更小的行,每行包含一行图像