質問

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

スタックパネルの特定のユーザーコントロールにプログラム的にスクロールする方法を知っています。スクロールビューアーが選択したときにそのユーザーコントロールにスクロールするように、各レコードの上部TOI eblestnでドロップダウンが必要です。

何かご意見は? ScrollViewerにはScrollToverticalOffset()メソッドがあることがわかりますが、Stackpanelのこれらのコントロールのオフセットをどのように計算するかはわかりません。

ありがとう!

役に立ちましたか?

解決

次のようなものが機能すると思います。

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);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top