2010-04-19 4 views
0

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

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

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

Спасибо!

ответ

0

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

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); 
} 
+0

Это работало отлично! Большое спасибо! – Eric