我正在用C#开发一个UWP应用程序,并使用ScrollViewer滚动一些内容。当用户垂直滚动时,我想知道是否有办法检测用户是从上到下还是从下到上滚动(即滚动方向)?
答案 0 :(得分:3)
如果值增加,用户从上到下滚动,您可以从ScrollViewer的VerticalOffset属性中获取帮助来检测移动。如果值正在减小,则用户从下往上滚动。您可以侦听ScrollViewer的ViewChanged事件并执行必要的逻辑。下面是样本绑定以证明这个想法。
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock VerticalAlignment="Center" Text="{Binding VerticalOffset, ElementName=tst,Mode=OneWay}"/>
<ScrollViewer Grid.Row="1" x:Name="tst" ViewChanged="tst_ViewChanged">
<StackPanel Background="Gray" Height="2500">
</StackPanel>
</ScrollViewer>
</Grid>