Blättern Sie ListViewItem an der Spitze einer ListView
In WPF, die ich kenne, die ich verwenden kann ListView.ScrollIntoView
zu Blättern, einen bestimmten Gegenstand in den Blick, sondern es wird immer die geringste Menge an Blättern, so dass das Element angezeigt wird.
Wie kann ich es machen das Blättern, so dass der Artikel, den ich will, um zu zeigen, steht Sie an der Spitze der ListView?
Habe ich mir Gedanken über den Aufruf von ScrollIntoView zweimal, einmal für den Artikel, den ich will an die Spitze, und einmal für den zuletzt angezeigten Punkt, aber ich weiß nicht, wie um herauszufinden, was die zuletzt angezeigten Element.
InformationsquelleAutor Ray | 2009-07-03
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wir können dies tun, indem er die ScrollViewer, die in der ListView ControlTemplate. Wenn Sie Zugang zu einem ScrollViewer-dann gibt es viel verschiedene scrolling-Methoden ausgesetzt.
Zuerst erstellen wir eine ListView, die wir hinzufügen möchten, dieser Effekt um:
Benötigen wir auch etwas, das wir verwenden können zu erhalten, das ScrollViewer-Element aus dem ListView. Ich habe etwas ähnliches vor, um das arbeiten mit benutzerdefinierten scrollen, und wir können es auch hier.
Nun, wir brauchen nur zu behandeln, das SelectionChanged-Ereignis. Weil wir versuchen, Blättern Sie ein Element am Anfang der Liste, ist die beste option, um einen Bildlauf nach unten, und dann wieder nach oben scrollen, um unsere ausgewählte Element. Als Sie sagte, ScrollIntoView scrollen bis der Artikel sichtbar ist, und so, sobald die ausgewählte Position erreicht, wie es Schriftrollen zurück, es wird aufhören, uns zu verlassen mit unseren ausgewählten Element an der Spitze der Liste.
Dies ist eine alternative zu der Antwort von @rmoore, dass vermeidet scrollen, um den unteren. Beachten Sie auch, dass dies nur nützlich in Fällen, in denen
SelectionMode=Single
.In Fall, dass
ScrollViewer.CanContentScroll=True
dieScrollViewer
können, Blättern Sie direkt zu derSelectedIndex
.werden, und im Fall
ScrollViewer.CanContentScroll=False
einige zusätzliche XAML-Code ist erforderlich:Und die
ScrollViewer
bewegen kann, um den vertikalen Abstand von der Oberseite desListViewItem
.