2010-04-19 62 views
0

我有一堆用户控件(大约15个,每个记录一个)在一个堆栈面板中,它向下延伸到我的页面。我把它放在滚动查看器中,以便用户不必滚动浏览器,而是可以滚动滚动查看器面板。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 2010-04-23 19:47:47