水平子项对齐= "Stretch" 在 WrapGrid 中不起作用


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

我想你要找的是这个?

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

不是水平的,而是VerticalChildrenAlignment的.我必须补充一点,如果没有至少一个包装的项目,它看起来确实很奇怪,因为水平调整大小会使项目"跳跃">

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

其他选项是从 GridView 切换到网格,并调整此处显示的 WPF 代码。但这也不是完全动态的解决方案,因为您需要定义每行显示多少项。

最新更新