我在堆栈面板上有一堆用户控件(大约15个,每个记录一个),从而延伸到我的页面。我把它放在一个滚动查看器中,这样用户就不必滚动浏览器了,而只需滚动滚动查看器面板。
任何人都知道如何以编程方式滚动到我的堆栈面板中的特定用户控件。我想在顶部toi表示每个记录的下拉列表,以便在选中时滚动查看器滚动到该用户控件。
任何想法?我看到scrollviewer有一个ScrollToVerticalOffset()方法,但我不知道如何计算这些控件在stackpanel中的偏移量。
谢谢!
答案 0 :(得分: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);
}