检测UWP应用程序中的滚动方向

检测UWP应用程序中的滚动方向,uwp,scrollviewer,direction,Uwp,Scrollviewer,Direction,我正在用C#开发一个UWP应用程序,并使用ScrollViewer滚动一些内容。当用户垂直滚动时,我想知道是否有方法检测用户是从上到下滚动还是从下到上滚动(即滚动方向)?如果值增加,您可以从ScrollViewer的VerticalOffset属性获取帮助,以检测移动。用户是从上到下滚动。如果该值正在减小,则用户将从下向上滚动。您可以侦听ScrollViewer的ViewChanged事件并执行必要的逻辑。下面是示例绑定以演示该想法 <Grid Background="{ThemeReso

我正在用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>


输出:

您可以从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>


输出:

看看我的答案。看看我的答案。正如Justin XL和您所指出的,这种方法很有效,对于我的场景来说已经足够好了。感谢Justin XL和您指出的,这种方法很有效,对于我的场景来说已经足够好了。谢谢