根据 window 大小更改 GridView 大小 (UWP)

Change GridView size based on window size (UWP)

我希望 gridview 的宽度大小随着 window 大小的改变而改变。我尝试在 xaml 和 c# 中使用以下内容来执行此操作。虽然这确实有效,因为页面加载了不同的 window 大小,但它不会随着 window 大小的更改而动态更改。

我已经尝试过使用自适应触发器,但是我无法让网格宽度改变大小。

 <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="GridViewWith">
                <VisualState x:Name="Big">
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="600"/>
                    </VisualState.StateTriggers>
                    <VisualState.Setters>
                        <Setter Target="gridView.Width" Value="500"/>
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>

以及网格本身:

 <StackPanel Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="7" Margin="0,40,0,0">
            <GridView x:Name="gridView" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.HorizontalScrollBarVisibility="Visible" HorizontalAlignment="Left" IsItemClickEnabled="True" SelectionMode="None" ItemClick="gridView_SelectionChanged" VerticalAlignment="Top"  Height="601">
                <GridView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel>                             
                            <TextBlock Foreground="Black" Text="{Binding Name}"/>
                            <StackPanel Orientation="Horizontal"  >
                                <TextBlock Foreground="Black" xml:space="preserve" Text="Size: " />
                                <TextBlock Foreground="Black"  Text="{Binding Size}"  />
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </GridView.ItemTemplate>
            </GridView>
        </StackPanel>

您可以使用自适应触发器,您可以在屏幕尺寸更改时自动调整网格尺寸 非常容易使用。

https://www.microsoft.com/en-gb/developers/articles/week03aug15/designing-with-adaptive-triggers-for-windows-10/