XAML 是否有一种方法可以 Package HorizontalStackLayout的内容

gwo2fgha  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(128)

我试图显示一些项目,为此,现在,我使用的是水平堆叠布局。
它们应该水平显示,但不是这样:

如果第三个项目没有完全显示,并且以下项目根本没有显示,则应将它们换到下一行。如下所示(或类似):

使用HorizontalStackLayout是否可以实现这一点,或者是否有任何其他视图可以创建这样的效果?
Stacklayout的xaml现在看起来像这样:

<HorizontalStackLayout Grid.Column="1" BindableLayout.ItemsSource="{Binding DisplayedUserActions}" Margin="10">
            <BindableLayout.ItemTemplate>
                <DataTemplate>
                    <Border BackgroundColor="White" HeightRequest="150" MinimumWidthRequest="180" Margin="5">
                        <Border.StrokeShape>
                            <RoundRectangle CornerRadius="20,20,20,20"/>
                        </Border.StrokeShape>
                        <Grid RowDefinitions="*,*">
                            <Border Grid.Row="0" StrokeThickness="2" Stroke="lightgray" BackgroundColor="AliceBlue" Margin="2">
                                <Border.StrokeShape>
                                    <RoundRectangle CornerRadius="20,20,20,20"/>
                                </Border.StrokeShape>
                            </Border>
                            <Label Grid.Row="1" VerticalOptions="Center" HorizontalOptions="Center" Text="{Binding Title}" TextColor="Black"></Label>
                        </Grid>
                    </Border>
                </DataTemplate>
             </BindableLayout.ItemTemplate>
        </HorizontalStackLayout>
70gysomp

70gysomp1#

StackLayout就是这样做的,它可以堆叠。无论是水平还是垂直,它都可以一个接一个地堆叠项目。如果是水平的,它永远不会增加一行,如果是垂直的,它永远不会增加另一列。
然而,FLexLayout确实有一个Wrap属性,与FlexDirection结合使用,您应该能够以任何方式 Package 它。
根据您希望如何显示项目,在所有可用的different layouts中,您应该能够找到一个适合您需要的。

相关问题