如何在UWP XAML中实现这种类型的项目布局

如何在UWP XAML中实现这种类型的项目布局,xaml,gridview,uwp,uwp-xaml,Xaml,Gridview,Uwp,Uwp Xaml,下面是我想要的布局的示例图像: 所有项目都具有相同的宽度,但高度是可变的。 我希望它水平环绕,但垂直滚动。我可以在它碰到面板边缘时进行包装,或者限制为3-4列 我在谷歌上搜索了很多,尝试了各种类型的项目面板(VariableSizedWrapGrid,WrapPanel,VariableSizedGrid,等等),但没有任何东西能真正匹配这种布局。我得到的最接近的是UWP社区工具包的WrapGrid,但它仍然根据最高的项目设置行的高度,因此较小的项目下面有一堆空白 我觉得我遗漏了一些明显的东西

下面是我想要的布局的示例图像:

所有项目都具有相同的宽度,但高度是可变的。 我希望它水平环绕,但垂直滚动。我可以在它碰到面板边缘时进行包装,或者限制为3-4列

我在谷歌上搜索了很多,尝试了各种类型的项目面板(
VariableSizedWrapGrid
WrapPanel
VariableSizedGrid
,等等),但没有任何东西能真正匹配这种布局。我得到的最接近的是UWP社区工具包的WrapGrid,但它仍然根据最高的项目设置行的高度,因此较小的项目下面有一堆空白


我觉得我遗漏了一些明显的东西,因为我在其他UWP应用程序中见过这种布局,这在html中是一种相当常见的模式,但我就是想不出来

目前(2017年5月)不可能以一种干净的方式进行精确布局,但该团队将面向未来


您可以使用
VariableSizedWrapGrid
以肮脏的方式到达那里。最脏的选项是将高度设置为1px,然后让控件根据需要的高度选择x(例如200)行。一个更好的解决方案是将行高设置为20或50px,并从此处开始相乘。这将给你一个相当灵活的布局(但你必须做一些计算,以知道你需要的高度)。请记住,这些肮脏的方式会对性能产生负面影响,但如果真的需要,它会起作用


我建议您要么等待新控件(最早在秋季Creators更新时,今年晚些时候,可能更晚),要么尝试将您的项目放入有限的可变大小中,这样您就可以返回到
VariableSizedWrapGrid
的良好实现(而不是使用脏方法).

目前(2017年5月)不可能以干净的方式进行精确的布局,但团队将面向未来


您可以使用
VariableSizedWrapGrid
以肮脏的方式到达那里。最脏的选项是将高度设置为1px,然后让控件根据需要的高度选择x(例如200)行。一个更好的解决方案是将行高设置为20或50px,并从此处开始相乘。这将给你一个相当灵活的布局(但你必须做一些计算,以知道你需要的高度)。请记住,这些肮脏的方式会对性能产生负面影响,但如果真的需要,它会起作用


我建议您要么等待新控件(最早在秋季Creators更新时,今年晚些时候,可能更晚),要么尝试将您的项目放入有限的可变大小中,这样您就可以返回到
VariableSizedWrapGrid
的良好实现(而不是使用脏方法).

UWP社区工具包现在有了一个

UWP社区工具包现在有了一个

也许你可以使用一个RelativePanel?也许你可以用一个相亲电话?这是最合适的解决方案-(对于提问者-请记住,如果您在ListView/GridView中使用此选项,您将破坏虚拟化)这是最合适的解决方案-(对于提问者-请记住,如果您在ListView/GridView中使用此选项,您将破坏虚拟化)