GridView水平滚动(UWP)

时间:2017-10-10 06:28:46

标签: xaml gridview uwp horizontal-scrolling

我正在开发一个UWP应用程序,我希望我的GridView能够以水平模式而不是默认的垂直模式滚动。我有什么方法可以做到吗?

这是我的代码:

<GridView x:Name="HostListView" Grid.Row="2" Height="150" Margin="310,0,0,0"
                  ItemsSource="{Binding FilteredHosts}" SelectedItem="{Binding SelectedHost, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                  SelectionChanged="HostListView_SelectionChanged" IsSwipeEnabled="False">
    <GridView.ItemTemplate>
        <DataTemplate >
            <StackPanel Margin="8" Width="220">
                <TextBlock Text="{Binding Name}" Style="{StaticResource TitleTextBlockStyle}"
                           FontSize="15" TextWrapping="NoWrap" 
                           MaxHeight="40" Foreground="White"/>
                <TextBlock Text="{Binding Designation}" Style="{StaticResource CaptionTextBlockStyle}" 
                           TextWrapping="NoWrap" Foreground="White"/>
            </StackPanel>
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

1 个答案:

答案 0 :(得分:4)

这很简单,只需告诉GridView使用水平滚动条而不是垂直滚动条。这将启用水平滚动部分。

下一步很可能是确保项目的顺序正确,因为您不希望第4项在屏幕外,而第二行的项目20在视野中,因此它们必须是垂直堆放。您可以通过更改Orientation。{/ p>的ItemsWrapGrid属性来执行此操作

enter image description here

<GridView ...
          ScrollViewer.HorizontalScrollBarVisibility="Auto"
          ScrollViewer.HorizontalScrollMode="Auto"
          ScrollViewer.VerticalScrollBarVisibility="Disabled"
          ScrollViewer.VerticalScrollMode="Disabled">
    <GridView.ItemsPanel>
        <ItemsPanelTemplate>
            <ItemsWrapGrid Orientation="Vertical" />
        </ItemsPanelTemplate>
    </GridView.ItemsPanel>
    <GridView.ItemTemplate>
        ...
    </GridView.ItemTemplate>
</GridView>

我的SemanticZoom blog post可以找到更多信息,我也改为水平滚动。