我想要一个单行GridView,可以同时使用鼠标和触摸滑动来水平滚动。 GridView将通过绑定(bind)显示图像,以便从图像数组中选择单个图像。

除了水平滚动不起作用之外,其他所有东西都可以正常工作(装订,图像选择等)。 XAML代码如下所示。

我想念什么?

<GridView x:Name="IconGridView"
    Grid.Row="0"
    Margin="8,12"
    DataContext="{x:Bind IconManagerObj}"
    DoubleTapped="{x:Bind IconGridView_DoubleTapped}"
    IsItemClickEnabled="True"
    IsSwipeEnabled="True"
    ItemsSource="{Binding Path=IconImageInfo}"
    ScrollViewer.HorizontalScrollBarVisibility="Auto"
    ScrollViewer.HorizontalScrollMode="Enabled"
    ScrollViewer.VerticalScrollMode="Disabled"
    SelectionMode="Single"
    Tapped="{x:Bind IconGridView_Tapped}">

    <GridView.ItemsPanel>
        <ItemsPanelTemplate>
            <ItemsWrapGrid Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </GridView.ItemsPanel>

    <GridView.ItemTemplate>
        <DataTemplate>
            <StackPanel Margin="4,8"
            HorizontalAlignment="Center"
            BorderBrush="{ThemeResource SubtleBlueBrush}"
            BorderThickness="1">
               <Image Width="150" Source="{Binding IconImage}Stretch="Uniform"/>
           </StackPanel>
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

最佳答案

您拥有所有权利,但ItemsWrapGrid的方向必须为垂直才能具有卧式ScrollViewer。

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.itemswrapgrid.aspx此处的文档说明:

当值为“垂直”时,网格将在顶部到底部的列中添加项目,然后从左到右环绕。项目列水平滚动或平移。

关于c# - 单行水平滚动/可滑动GridView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34476647/

10-15 14:31