Функциональность якорного тега Silverlight?
-
28-09-2019 - |
Вопрос
У меня есть куча пользовательских элементов управления (около 15, один для каждой записи) в StackPanel, который простирается вниз по моей странице. Я положил это в ScrollViewer, чтобы пользователь не должен был прокрутить браузер, но вместо этого может просто прокрутить панель ScrollViewer.
Кто-нибудь знает, как программически прокрутить до определенного контроля пользователя на моем панели стека. Я хочу раскрывающуюся в верхнем TOI PROSETN каждой записи, так что при выделении просмотра просмотра просмотра просмотра просмотра до этого управления пользователем.
Есть предположения? Я вижу, что ScrollViewer имеет метод Scrolltoverticaloffset (), но я не знаю, как я бы рассчитал смещение этих элементов управления в StackPanel.
Спасибо!
Решение
Я представляю что-то вроде следующего, будет работать:
void ScrollToUserControl(UserControl uc)
{
double amountToScroll = 0;
for (int i = 0; i < stackPanel.Children.Count; i++)
{
if (stackPanel.Children[i] == uc)
break;
amountToScroll += stackPanel.Children[i].ActualHeight;
}
scrollViewer.UpdateLayout();
scrollViewer.ScrollToVerticalOffset(amountToScroll);
}