2017-01-31 1 views
0

Je développe une application UWP en C# et j'utilise un ScrollViewer pour faire défiler du contenu. Lorsque l'utilisateur fait défiler verticalement, je veux savoir s'il existe un moyen de détecter si l'utilisateur fait défiler de haut en bas ou de bas en haut (c'est-à-dire la direction du défilement)?Détecter la direction de défilement dans les applications UWP

+0

Jetez un oeil à ma réponse [ici] (http://stackoverflow.com/questions/35049071/how-can-i-detect-when-scrolling-has-started -in-listview-on-windows-10-uwp). –

Répondre

2

Vous pouvez prendre l'aide de la propriété VerticalOffset de ScrollViewer pour détecter le mouvement si la valeur augmente lorsque l'utilisateur défile de haut en bas. Si la valeur diminue, l'utilisateur défile de bas en haut. Vous pouvez écouter l'événement ViewChanged de ScrollViewer et faire la logique nécessaire. Ci-dessous est l'exemple de liaison pour démontrer l'idée.

<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> 

Sortie: enter image description here

+0

Comme Justin XL et vous l'avez souligné, cette approche fonctionne et est assez bonne pour mon scénario. Merci –