检测 UWP 应用中的滚动方向

Detect direction of scrolling in UWP apps

我正在用 C# 开发一个 UWP 应用程序,并使用 ScrollViewer 来滚动一些内容。当用户垂直滚动时,我想知道是否有办法检测用户是从上到下还是从下到上滚动(即滚动方向)?

您可以借助 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>

输出: