Wie kann ich in einem Scrollviewer zu einer bestimmten Position blättern?
%Vor%Ich versuche, zu einem bestimmten Element in meinem scrollviewer zu scrollen, aber ich bin neu in UWP und ich kann es nicht richtig verstehen, wie es geht.
Ich möchte die Bildlaufposition von MyScrollView im zweiten Textblock eines Ereignisses festlegen.
Eine bessere Lösung ist die Verwendung von ChangeView
anstelle von ScrollToVerticalOffset
/ ScrollToHorizontalOffset
, da letztere in Windows 10 veraltet ist.
Sie können sogar aktivieren Scroll-Animation, indem Sie den letzten Parameter auf false
setzen.
Aus Gründen der Vollständigkeit habe ich dafür eine Erweiterungsmethode erstellt.
%Vor%In diesem Fall müssen Sie einfach
anrufen %Vor%Ich habe die Antwort gefunden
%Vor%Aktualisieren
In UWP ScrollToVerticalOffset ist so veraltet
%Vor%sollte stattdessen verwendet werden. Ссылка
Früher habe ich den ScrollViewerOffsetMediator verwendet, eine Erweiterungsmethode, die sich auf die ScrollToVerticalOffset-Methode stützt, um das Scrolling des ScrollViewers reibungslos zu animieren Inhalt. ScrollToVerticalOffset ist jedoch in Windows 10 veraltet, und obwohl es in früheren Versionen von Windows 10 funktioniert hat, wird es nicht mehr verwendet.
Die neue ChangeView-Methode bietet nicht eine glatte oder steuerbare Animation des ScrollViewer-Inhalts. Also hier ist die Lösung, die ich gefunden habe:
Platzieren Sie ein Raster im ScrollViewer. Animiere den Inhalt des Rasters mithilfe einer RenderTransform. Verwenden Sie die neue ChangeView-Methode, um Ihre finalen gewünschten vertikalen und horizontalen ScrollViewer-Positionen festzulegen, wenn Sie die Animation des Rasterinhalts über die Umwandlung einrichten. Passen Sie in Ihrer Gittertransformation die Werte für initial um den final gewünschten ChangeView-Offset an, sodass der Startzugriff der Animation für den unmittelbaren Sprung korrigiert wird, der von ChangeView verursacht wird Methode.
XAML:
%Vor%Code:
%Vor%Beispiel:
%Vor%In diesem Beispiel wird unabhängig von der anfänglichen vertikalen Position der ScrollView der Inhalt gleichmäßig in eine feste vertikale Position und Zoomen animiert.