Jak używać ScrollViewer.ScrollToVerticalOffset?
Mam nadzieję, że to nie jest duplikat, ale nie mogę znaleźć żadnej dokumentacji ani przykładów, jak to zrobićposługiwać się ScrollToVerticalOffset()
. Używam go w aplikacji Windows Phone 8, ale myślę, że nadal będzie dotyczyć WP7 i Silverlight (chociaż, proszę, popraw mnie, jeśli się mylę).
Oto moja podstawowa konfiguracja (pseudo-kod z pamięci):
<phone.PivotItem>
<ScrollViewer>
<Grid Height="1500">
<Grid.RowDefinitions>
<!-- about 20 rows, all auto-height -->
</Grid.RowDefinitions>
<Border Grid.Row="0">
<TextBox x:Name="txt1" />
</Border>
<Border Grid.Row="1">
<TextBox x:Name="txt2" />
</Border>
<!-- ...... -->
<Border Grid.Row="19">
<TextBox x:Name="txt20" />
</Border>
</Grid>
</ScrollViewer>
</phone.PivotItem>
Więc jak widzisz, mamScrollViewer
w granicachPivotItem
, a wewnątrz jestGrid
. wGrid
jest około 20TextBox
s, każdy w ciąguBorder
. Dynamicznie ustawiam skupienie na jednym z nichTextBox
s, gdy ta strona się ładuje, więc w każdej chwili ustawiam ostrośćTextBox
# 6-20 (mniej więcej) - muszę go ręcznie przewinąć, aby go zobaczyć. Chcę automatycznie przewijać mojeScrollViewer
więc cokolwiekTextBox
ma fokus, będzie wyśrodkowany, aby użytkownik mógł go zobaczyć.
Thedokumentacja dlaScrollToVerticalOffset()
mówi:
Przewija zawartość znajdującą się w ScrollViewer do określonej pozycji przesunięcia pionowego.
I że akceptuje rodzajSystem.Double
.
Czego nie rozumiem to A) wartość, którą mam przekazać, a B) jak mogłem nawet uzyskać tę wartość? Czy to ma być liczba między 0 a wysokością mojegoGrid
(1500)? Jeśli tak, to w jaki sposób mogę określić pozycję każdego z nichTextBox
więc mogę to przewinąć?
Jeśli są jakieś proste przykłady, prosimy o link do nich. Nie jestem pewien, czy treść wScrollViewer
ma znaczenie przy wywoływaniu tej metody, ale w przypadku, gdy to robi, chciałem pokazać dokładnie, jak z niej korzystam.
Z góry bardzo dziękuję!