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

时间:2013-02-06 20:46:18

标签: windows-phone-7 windows-phone-8

我需要在列表框项目中有一个动态布局。

此类布局的示例将是Facebook上的新闻源。为简化起见,我们将其缩小为一个新闻项目类型:有人添加了N张照片。我已经有了一个算法,它可以获取图像大小并产生最佳布局。

  • 我不希望有20个图像具有绑定的宽度,高度,边距,可见性。

  • 我必须启用虚拟化。

如何在Windows手机平台上完成?

1 个答案:

答案 0 :(得分:0)

最简单的方法:

将ItemsControl放在列表框项目中。设置ItemsControl的宽度和高度,如布局算法所示。将ItemsPanel设置为网格。在数据模板中,放置一个图像,设置边距,如布局算法所示。

图像不会被虚拟化,列表框项目(包含带图像的整个ItemsControl)将会。

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

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

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