XAML UWP应用程序最小化时GridView的居中

cqoc49vn  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(140)

我把这个GridView Package 在一个Grid中。全屏时,它看起来不错。但是当我最小化它时,我希望整个GridViewGrid中居中。在下面的图片中(提供链接),其中一个是全屏的,没问题。另一个在最小化时是左对齐的。我怎么把它们居中呢?左右填充都很好。但是看起来很丑。这是我的GridView样式和面板。

<GridView.ItemContainerStyle>
    <Style TargetType="GridViewItem">
        <Setter Property="Margin" Value="10, 10, 10, 10"/>
    </Style>
</GridView.ItemContainerStyle>

<GridView.ItemsPanel>
    <ItemsPanelTemplate>
        <ItemsWrapGrid x:Name="MaxItemsWrapGrid"
                       MaximumRowsOrColumns="3"
                       Orientation="Horizontal"/>
        </ItemsPanelTemplate>
</GridView.ItemsPanel>

GirdView图像如下所示。
1.全屏显示GridView-Here
1.最小化视图中的Gridview-Here

u1ehiz5o

u1ehiz5o1#

根据您的需要,建议您使用ItemsRepeater来保持元素整体居中,它是WinUI控件,需要在NuGet Manager中安装Microsoft.UI.Xaml。

<muxc:ItemsRepeater ItemsSource="{x:Bind items}" HorizontalAlignment="Center">
        <DataTemplate x:DataType="x:String">
            <Grid Background="BlueViolet" Height="200" Width="300" Margin="10,10,10,10">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="47"/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <TextBlock Text="{x:Bind}" Foreground="White"
               FontSize="15" Grid.Column="1"/>
            </Grid>
        </DataTemplate>
        
        <muxc:ItemsRepeater.Layout>
            <muxc:UniformGridLayout MinItemWidth="300"
                            MinColumnSpacing="30"
                            Orientation="Horizontal"
                            ItemsJustification="Start"/>
        </muxc:ItemsRepeater.Layout>
    </muxc:ItemsRepeater>

运行结果:

相关问题