Wie Blättern Sie zu element in den UWP
Wie kann ich scrollen, um bestimmte position innerhalb eines scrollviewer-Element?
<ScrollViewer x:Name ="MyScrollView" HorizontalScrollBarVisibility="Hidden" Height="500">
<StackPanel x:Name="ContentsPanel">
<TextBlock x:Name="someTb" Height="50">
</TextBlock>
<TextBlock x:Name="otherTb" Height="100">
</TextBlock>
</StackPanel>
</ScrollViewer>
Ich versuche zu scrollen, um ein bestimmtes element in meinem scrollviewer-Element, aber ich bin neu UWP und ich kann es nicht ganz richtig machen, wie es zu tun.
Will ich setzen der scroll-position der MyScrollView in der zweiten textblock auf ein Ereignis geschieht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine bessere Lösung ist die Verwendung
ChangeView
stattScrollToVerticalOffset
/ScrollToHorizontalOffset
da letztere ist veraltet, in Windows 10.Können Sie auch aktivieren scrolling-animation-Einstellung den letzten parameter
false
.Update
Zur Vervollständigung, ich habe eine extension-Methode für diese.
So, in diesem Fall brauchen nur zu rufen
MyScrollView.ChangeView(null,abosulatePosition.Y,null,true);
Fand ich die Antwort
Update
In UWP ScrollToVerticalOffset veraltet ist, so
sollte stattdessen verwendet werden. https://msdn.microsoft.com/en-us/library/windows/apps/dn252763.aspx
Hier ist ein Demo-Video der unten beschriebenen Methode umgesetzt.
Nutzte ich die ScrollViewerOffsetMediator, eine Erweiterung Methode, die stützte sich auf die ScrollToVerticalOffset Methode, um reibungslos animieren, scrollen des ScrollViewer-Inhalte. Allerdings ScrollToVerticalOffset wurde, laufen in Windows 10, und zwar arbeitete er in einigen früheren Versionen von Windows 10, es funktioniert nicht mehr.
Den neuen ChangeView-Methode wird nicht entweder glatt noch steuerbare animation der ScrollViewer-Inhalte. So, hier ist die Lösung, die ich gefunden habe:
Platzieren Sie ein Raster innerhalb des ScrollViewer-Element. Animieren Sie den Inhalt des Rasters mit einer RenderTransform. Verwenden Sie die neue ChangeView-Methode, um Ihre letzten gewünschte vertikale und horizontale ScrollViewer-Positionen an der Zeit, Sie setzen Ihre animation der Netz-Inhalte über die transformation. Und in Ihrem raster-transformation den offset der ersten Werte durch die letzten gewünschte ChangeView-offset, so dass die animation zu starten, Referenz korrigiert für das sofortige springen, die verursacht werden durch die ChangeView-Methode.
XAML:
Code:
Beispiel:
In diesem Beispiel, egal, was die anfängliche vertikale position des ScrollView, wird der Inhalt sanft animierte zu einer festen vertikalen position und zoom.