Вопрос

У меня есть куча пользовательских элементов управления (около 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);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top