C# 单行水平滚动/可旋转网格视图
我想要一个单行GridView,可以用鼠标和触摸屏水平滚动。GridView通过绑定显示图像,以便从图像数组中选择单个图像 一切正常(装订、图像选择等),但水平滚动不起作用。XAML代码如下所示 我错过了什么C# 单行水平滚动/可旋转网格视图,c#,xaml,gridview,windows-runtime,uwp,C#,Xaml,Gridview,Windows Runtime,Uwp,我想要一个单行GridView,可以用鼠标和触摸屏水平滚动。GridView通过绑定显示图像,以便从图像数组中选择单个图像 一切正常(装订、图像选择等),但水平滚动不起作用。XAML代码如下所示 我错过了什么 <GridView x:Name="IconGridView" Grid.Row="0" Margin="8,12" DataContext="{x:Bind IconManagerObj}" DoubleTapped="{x:Bind IconGri
<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>
您的一切都正确,但ItemsRapGrid的方向必须是垂直的,才能使用水平滚动查看器
此处的文档说明:
当该值为垂直时,网格将从上到下在列中添加项,然后从左到右换行。项目列可以水平滚动或平移。胡安·帕布罗·加西亚·科略的回答让我走上了正确的轨道,但如果没有额外的设置,则无法正常工作。通过试验,我发现关键的一点是为GridView设置高度
- 高度必须设置为足以使单行元素显示,但不足以允许第二行。对于100的图像高度,我将其任意设置为140,效果非常好
ScrollViewer.VerticalScrollMode
必须禁用
ScrollViewer.HorizontalScrollMode
必须是Auto或已启用
ScrollViewer.HorizontalScrollBarVisibility
必须是Auto或已启用
- 最重要的是,正如Juan所指出的,
项目rapGrid方向必须是垂直的(听起来有悖常理,但很有效!)
我已经将Juan的答案标记为已回答,因为它提供了一个完整的答案,因为如果没有将方向设置为垂直,我不可能很快找到一个完整的答案——如果你问我,这是一个相当违反直觉的设置,但现在我明白了。Hmm实际上不应该设置高度。。。这是我的看法。如果你想,我可以添加它作为答案,因为我使用了堆栈面板而不是包装面板,它工作得很好!