UWP GridView 可滚动直到被点击
UWP GridView Scrollable until clicked
我在 UWP 中创建了这个 GridView,它显示了我想要的内容,但是为了滚动它,我需要先点击它,然后再滚动。当使用触摸界面时,我需要点击一次然后滚动。而且当 select 一个项目时,我需要 tap/click 两次。
有什么方法可以避免这种 select 然后滚动的需要?
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="Title" Margin="0,0,0,20" Style="{ThemeResource SubheaderTextBlockStyle}" Grid.Row="0"></TextBlock>
<GridView x:Name="ReportsGridView" ItemsSource="{x:Bind Reports, Mode=OneWay}" Grid.Row="1"
ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.HorizontalScrollMode="Auto" ScrollViewer.HorizontalScrollBarVisibility="Hidden" >
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Orientation="Vertical" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:Report">
...
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
</Grid>
我已经尝试过以编程方式设置焦点:
ReportsGridView.Focus(FocusState.Programmatic);
我发现了问题。它与 GridView 本身无关。我有一个 CommandBar,其 IsOpen 属性 设置为 True。
<CommandBar IsOpen="True">
因此,需要第一个 tap/click 来关闭栏,然后才能滚动或 select。
我在 UWP 中创建了这个 GridView,它显示了我想要的内容,但是为了滚动它,我需要先点击它,然后再滚动。当使用触摸界面时,我需要点击一次然后滚动。而且当 select 一个项目时,我需要 tap/click 两次。
有什么方法可以避免这种 select 然后滚动的需要?
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="Title" Margin="0,0,0,20" Style="{ThemeResource SubheaderTextBlockStyle}" Grid.Row="0"></TextBlock>
<GridView x:Name="ReportsGridView" ItemsSource="{x:Bind Reports, Mode=OneWay}" Grid.Row="1"
ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.HorizontalScrollMode="Auto" ScrollViewer.HorizontalScrollBarVisibility="Hidden" >
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Orientation="Vertical" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:Report">
...
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
</Grid>
我已经尝试过以编程方式设置焦点:
ReportsGridView.Focus(FocusState.Programmatic);
我发现了问题。它与 GridView 本身无关。我有一个 CommandBar,其 IsOpen 属性 设置为 True。
<CommandBar IsOpen="True">
因此,需要第一个 tap/click 来关闭栏,然后才能滚动或 select。