根据窗口大小(UWP)更改GridView大小

时间:2016-02-25 14:04:47

标签: c# gridview width win-universal-app

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

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

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

1 个答案:

答案 0 :(得分:0)

当屏幕尺寸发生变化时,您可以使用自适应触发器自动调整网格的大小 它非常易于使用。

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