c# - 单行水平滚动/可滑动的 GridView

标签 c# xaml gridview windows-runtime uwp

我想要一个单行 GridView,它可以通过鼠标和触摸滑动来水平滚动。 GridView是通过绑定(bind)的方式呈现图片,从图片数组中选择单张图片。

除水平滚动不起作用外,一切正常(绑定(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 的Orientation 必须是Vertical 才能拥有 Horizo​​ntal ScrollViewer。

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

当值为 Vertical 时,网格从上到下在列中添加项目,然后从左到右换行。项目列水平滚动或平移。

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

相关文章:

C# 位图为 Format8bppIndexed 设置像素值

c# - 任务并行库异常处理

xaml - Windows 应用商店应用布局差异

c# - Visual Studio : Condition "if (InDesigner)"

c# - C# .NET 上的 OAuth 与 Twitter

c# - 为什么在 XAML 中绑定(bind) MainWindow datacontext 无法像在代码隐藏中使用 this.datacontext=this 绑定(bind)一样?

c# - 如何将用户控件复选框绑定(bind)到列表框中

c# - 更改不同值的单元格颜色 - Gridview

asp.net - 在 gridview 中将 Eval 作为 javascript 函数参数传递

javascript - 仅显示用于在.Net 3.5中的Gridview中插入新行的页脚