2 votes

Faire défiler vers une position dans le Scrollviewer avec une scrollanimation normale

J'ai une application de style métro avec un scrollviewer. Maintenant, je voudrais faire défiler vers une position lorsque l'utilisateur clique sur un bouton. J'ai essayé :

 MainScrollViewer.ScrollToHorizontalOffset(x);

Mais ensuite, il y "saute" rapidement. Je veux avoir une animation fluide jusqu'à x.

0voto

Filip Skakun Points 20765

Il n'existe pas d'API prête à l'emploi qui vous permette de le faire. Il n'existe pas non plus de propriété que vous pourriez cibler avec une animation. Vous devez soit utiliser une animation basée sur les images (en gros, déterminer où vous vous trouvez dans la ligne de temps et mettre à jour le décalage à chaque événement CompositionTarget.Rendering), soit créer une propriété de dépendance jointe qui appelle ScrollToHorizontalOffset lorsque sa valeur change et cibler cette propriété avec une animation.

0voto

Vous pourriez créer une méthode qui s'exécute de manière asynchrone et qui comporte un minuteur qui incrémente le ScrollToHorizontalOffset(int x).

Disons que toutes les 500 ms, il ajoute 10px.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X