Функциональность тега привязки Silverlight? - PullRequest
0 голосов
/ 19 апреля 2010

У меня есть набор пользовательских элементов управления (около 15, по одному на каждую запись) в стековой панели, которая простирается вниз по моей странице. Я поместил это в средство просмотра прокрутки, чтобы пользователю не пришлось прокручивать браузер, а вместо этого можно было просто прокрутить панель прокрутки.

Кто-нибудь знает, как программно прокрутить до определенного пользовательского элемента управления в моей панели стека. Я хочу раскрывающийся список в верхней части каждой записи, чтобы при выборе средства просмотра прокрутки прокручивать до этого пользовательского элемента управления.

Есть мысли? Я вижу, что у scrollviewer есть метод ScrollToVerticalOffset (), но я не знаю, как рассчитать смещение этих элементов управления в панели стека.

Спасибо!

1 Ответ

0 голосов
/ 19 апреля 2010

Я думаю, что-то вроде следующего будет работать:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...