Как использовать ScrollViewer.ScrollToVerticalOffset?
Я надеюсь, что это не дубликат, но я не могу найти документацию или примеры того, как на самом делеиспользование ScrollToVerticalOffset()
, Я использую его в приложении для Windows Phone 8, но я думаю, что он все еще будет применяться к WP7 и Silverlight (хотя, не стесняйтесь исправлять меня, если я ошибаюсь).
Итак, вот мои основные настройки (псевдокод из памяти):
<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>
Итак, как вы можете видеть, у меня естьScrollViewer
в пределахPivotItem
и внутриGrid
, вGrid
их около 20TextBox
с, каждый в пределахBorder
, Я динамически фокусируюсь на одном из нихTextBox
s, когда эта страница загружается, поэтому в любое время я устанавливаю фокус наTextBox
# 6-20 (примерно) - мне нужно вручную прокрутить вниз, чтобы увидеть это. Я хочу автоматически прокрутить мойScrollViewer
так, что бы ниTextBox
имеет фокус, он будет центрирован для просмотра пользователем.
документация заScrollToVerticalOffset()
говорит:
Прокручивает содержимое, находящееся в ScrollViewer, до указанной вертикальной позиции смещения.
И что он принимает типSystem.Double
.
Что я не понимаю, так это А) значение, которое я должен передать, и Б) как я мог даже получить это значение? Это должно быть число от 0 до высоты моегоGrid
(1500)? Если да, то как я могу определить положение любого данногоTextBox
чтобы я мог перейти к нему?
Если есть какие-либо простые примеры, пожалуйста, не стесняйтесь ссылаться на них. Я не уверен, что содержание вScrollViewer
имеет значение при вызове этого метода, но в случае, если это так, я хотел показать, как именно я его использую.
Спасибо заранее!