Blättern Sie zum unteren Rand der listbox wp7
Ich habe viele items(0-100) Ende brauchen, um einen Bildlauf zum unteren Rand der Listbox, die es enthält.Ich habe versucht:
ScrollViewer.SetVerticalScrollBarVisibility(listmy, ScrollBarVisibility.Auto);
listmy.SelectedItem = listmy.Items.Count-1;
listmy.ScrollIntoView(listmy.SelectedItem);
ScrollViewer.SetVerticalScrollBarVisibility(listmy, ScrollBarVisibility.Disabled);
aber nicht workds für mich.Das scrollviewer-Element umschließt die listbox und textbox.(Listenfeld vertikale scrollen im deaktivierten Zustand).
UPD xaml:
<Grid>
<ScrollViewer Name="_ScrollViewer" VerticalScrollBarVisibility="Auto">
<StackPanel Name="stackPanel" Height="auto">
<ListBox ScrollViewer.VerticalScrollBarVisibility="Disabled" x:Name="listmy">
<ListBox.ItemTemplate>
<DataTemplate>...
und cs:
listmy.ItemsSource = ((App)Application.Current).DIALOG;
ScrollViewer.SetVerticalScrollBarVisibility(listmy, ScrollBarVisibility.Auto);
listmy.SelectedIndex = listmy.Items.Count-1;
listmy.ScrollIntoView(listmy.SelectedItem);
ScrollViewer.SetVerticalScrollBarVisibility(listmy, ScrollBarVisibility.Disabled);
- Was bedeutet das: "Das scrollviewer-Element umschließt die listbox und textbox" ? Sie haben eine ListBox (die haben Ihren eigenen internen ScrollViewer-Element) und einer Äußeren ScrollViewer-Element Ihrer eigenen?
- Wie über die Entsendung einige XAML, um zu zeigen, das layout des UI? Wie derzeit formuliert, deine Frage macht keinen Sinn.
- Sorry, ich bin nicht gut in Englisch.Ich code gepostet.
InformationsquelleAutor SevenDays | 2011-09-13
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entnehme ich, Sie wollen nur sicherstellen, dass der Scrollbalken der ListBox ist immer voll Bildlauf nach unten. Die anderen Lösungen sind nur über das sicherstellen, dass die Letzte Zeile sichtbar ist (nicht die gleiche).
Um den Effekt, den Sie möchten, können Sie eine einfache Unterklasse ListBox so:
Nicht verwenden Sie eine äußere ScrollViewer-Element, wie Sie in dem Beispiel, nur das untergeordnete Listenfeld
Rufen Sie einfach die ScrollToBottom () - Methode, Wann immer Sie es möchten, einen Bildlauf zu der letzten Zeile.
Den Grund für den Erben ist, dass
GetTemplateChild
istprotected
also nicht von außen zugänglich von einer abgeleiteten Klasse.Wie wäre es damit:
Versuchte ich es auf einem Beispiel-Projekt und es hat Super geklappt!
ScrollViewer.SetVerticalScrollBarVisibility(listmy, ScrollBarVisibility.Auto); var lastItem = listmy.Items[listmy.Items.Count - 1]; listmy.ScrollIntoView(lastItem); ScrollViewer.SetVerticalScrollBarVisibility(listmy, ScrollBarVisibility.Disabled);
Stieß auf dieses und nicht das gefunden haben, der "funktioniert out of the box kein code-behind" - Lösung, also ich kam gerade mit dieser Klasse:
Nutzen Sie einfach dieses Listenfeld und es werden keine zusätzlichen "magic" ist erforderlich.
Wenn Sie einfach nur die select-index der ListBox, sollte es funktionieren. Ich habe es versucht und es schien zu funktionieren.
Habe ich versucht, und es Bildlauf zum unteren Rand der ListBox, ohne Probleme.