Horizo​​ntalChildrenAlignment ="拉伸"在WrapGrid中无效

时间:2015-12-18 09:08:31

标签: gridview alignment uwp

<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右边之间存在较大间隙。理想情况下,我们希望额外的空间在网格项之间均匀分布,而不是在最右边的网格项右侧留下一个左侧空间。

2 个答案:

答案 0 :(得分:2)

我觉得你在找什么?

<WrapGrid  Orientation="Horizontal" VerticalChildrenAlignment="Stretch"/>

不是水平的,而是VerticalChildrenAlignment。我必须补充一点,如果没有至少一个包裹物品,它看起来确实很奇怪,因为水平调整大小会使物品“跳跃”

答案 1 :(得分:0)

WrapGrid没有这种开箱即用的动态功能。如果您要显示固定数量的项目,则可以手动计算最佳保证金。

其他选项是从GridView切换到Grid和adapt the WPF code shown here.但这不是完全动态的解决方案,因为您需要定义每行显示的项目数。