Gridview 水平儿童重新排列=”;“伸展”;不在WrapGrid中工作

Gridview 水平儿童重新排列=”;“伸展”;不在WrapGrid中工作,gridview,alignment,uwp,Gridview,Alignment,Uwp,WrapGrid中的HorizontalChildrenAlignment=“Stretch”无效吗?如何使网格项对齐,使最左侧的项保持在WrapGrid的左边框,而最右侧的项保持在WrapGrid的右边框,并使额外的空间均匀分布在网格项之间 当前,网格项之间的空间是网格项中指定的边距,如果剩余空间不足以容纳另一个网格项,则最右边的项与WrapGrid的右边框之间存在较大的间隙。理想情况下,我们希望额外的空间均匀分布在网格项之间,而不是在最右边的网格项的右侧留下剩余空间。没有这种开箱即用的动态功

WrapGrid中的HorizontalChildrenAlignment=“Stretch”无效吗?如何使网格项对齐,使最左侧的项保持在WrapGrid的左边框,而最右侧的项保持在WrapGrid的右边框,并使额外的空间均匀分布在网格项之间

当前,网格项之间的空间是网格项中指定的边距,如果剩余空间不足以容纳另一个网格项,则最右边的项与WrapGrid的右边框之间存在较大的间隙。理想情况下,我们希望额外的空间均匀分布在网格项之间,而不是在最右边的网格项的右侧留下剩余空间。

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


另一个选项是从GridView切换到Grid,但这也不是完全动态的解决方案,因为您需要定义每行显示多少项。

我想您需要的是这个

<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>


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

这正是我要寻找的行为。太棒了,你好。关于这件事,你能再多告诉我一点吗?使用提供的XAML代码,项目和项目之间的空间随着总空间的增加而增大。是否可以通过某种方式调整WrapGrid,以便调整元素大小以填充水平空间(而不是在项目之间创建/放大空间)?
<WrapGrid  Orientation="Horizontal" VerticalChildrenAlignment="Stretch"/>