0

ページのずっと下まで伸びるスタックパネルに、たくさんのユーザーコントロール(約15、各レコードに1つ)があります。これをscrollviewerに入れて、ユーザーがブラウザーをスクロールする必要がなく、代わりにscrollviewerパネルをスクロールできるようにしました。

誰もが私のスタックパネルで特定のユーザーコントロールにプログラムでスクロールする方法を知っています。上部にあるドロップダウンを使用して各レコードを再設定し、選択するとスクロールビューアがそのユーザーコントロールにスクロールするようにします。

何かご意見は?scrollviewerには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 に答える