0

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

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

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

  • 我必须启用虚拟化。

这在 Windows 手机平台上如何实现?

4

1 回答 1

0

最简单的方法:

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

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

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

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

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

于 2013-02-06T23:00:12.697 回答