0

我在一个堆栈面板中有一堆用户控件(大约 15 个,每条记录一个),它沿着我的页面向下延伸。我把它放在一个滚动查看器中,这样用户就不必滚动浏览器,而只需滚动滚动查看器面板。

任何人都知道如何以编程方式滚动到我的堆栈面板中的特定用户控件。我希望在每条记录的顶部有一个下拉列表,以便在选择时滚动查看器滚动到该用户控件。

有什么想法吗?我看到滚动查看器有一个 ScrollToVerticalOffset() 方法,但我不知道如何计算堆栈面板中这些控件的偏移量。

谢谢!

4

1 回答 1

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);
}
于 2010-04-19T19:48:46.250 回答