Frage

Ich habe eine eine Reihe von Benutzersteuerungen (ca. 15, ein für jeden Datensatz) in einem Stackpanel, die Art und Weise über meine Seite erstreckt. Ich habe dies in einem Scroll so dass der Benutzer nicht den Browser blättern müssen, sondern können einfach die Scroll Panel scrollen.

Wer weiß, wie programmatisch blättern Sie zu einer bestimmten Benutzersteuerung in meinem Stack-Panel. Ich mag einen Drop-Down an der Spitze jeden Datensatz toi represetn so, dass, wenn der Scroll-Betrachter blättert in dieser Benutzersteuerung ausgewählt.

Alle Gedanken? Ich sehe, dass die Scroll einen ScrollToVerticalOffset () -Methode hat, aber ich weiß nicht, wie ich den Offset dieser Kontrollen im Stackpanel berechnen würde.

Danke!

War es hilfreich?

Lösung

Ich stelle mir so etwas wie die folgenden funktionieren würde:

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);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top