<GridView ItemsSource="{Binding SomeSource}" >
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal" HorizontalChildrenAlignment="Stretch"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemTemplate>
<DataTemplate>
<Grid>
<ContentControl>
<!--hidden for simplicity-->
</ContentControl>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
WrapGrid中的 HorizontalChildrenAlignment="Stretch"
没有效果?如何使网格项对齐,使最左边的项目保持在WrapGrid的左边框,而最右边的项目将保持在WrapGrid的右边框,并且额外的空间均匀分布在网格之间项目?
目前,网格项之间的空间是网格项中的指定边距,如果剩余空间不足以容纳另一个网格项,则最右边项与WrapGrid右边之间存在较大间隙。理想情况下,我们希望额外的空间在网格项之间均匀分布,而不是在最右边的网格项右侧留下一个左侧空间。
答案 0 :(得分:2)
我觉得你在找什么?
<WrapGrid Orientation="Horizontal" VerticalChildrenAlignment="Stretch"/>
不是水平的,而是VerticalChildrenAlignment
。我必须补充一点,如果没有至少一个包裹物品,它看起来确实很奇怪,因为水平调整大小会使物品“跳跃”
答案 1 :(得分:0)
WrapGrid没有这种开箱即用的动态功能。如果您要显示固定数量的项目,则可以手动计算最佳保证金。
其他选项是从GridView切换到Grid和adapt the WPF code shown here.但这不是完全动态的解决方案,因为您需要定义每行显示的项目数。