2013-02-06 15 views
0

我需要在列表框项目内部有一个动态布局。这种布局的数据模板中的Windows Phone动态布局

实施例将在Facebook上的新闻提要。为了简化,我们将其缩小到一个新闻类型:有人添加了N张照片。我已经有一种算法,它能够获取图像大小并生成最佳布局。

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

  • 我必须启用虚拟化。

这怎么能在Windows手机平台上完成?

回答

0

最简单的方法:

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

图像不会是虚拟化的,列表框的项目(包含整个的ItemsControl与图像)会。从例如

继承:

最正确的方法(如果你以使单个项目超过2048像素具有许多图像和/或放大图时才需要) VirtualizingStackPanel,重写MeasureOverride和ArrangeOverride以实现您的自定义布局,然后花费大约2-10天的时间在代码中修复与虚拟化相关的问题。这种方式虚拟化了一切,但时间是估计的(我从来没有做过),我不能保证你最终会成功。

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