2017-10-10 121 views
1

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

这里是我的代码:

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

你想要多少行?单个或多个 –

回答

1

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

下一步很可能确保物品按正确顺序排列,因为您不希望物品4脱离屏幕,而第二行的物品20处于视图中,因此他们必须垂直堆叠。您可以通过更改ItemsWrapGridOrientation属性来执行此操作。

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,我改变了水平滚动也被发现。