Ich habe ein ListBox mit vielen dargestellten Objekten, von denen jedes eine variable Höhe haben kann, basierend auf der Anzahl der Werte, die jedes Objekt hat. Sehen Sie meine vorherige Frage, die hier beantwortet wurde.
Viele Objekte sind 5 Zeilen hoch, während andere nur 1 Zeile hoch sind. Die Scrollleiste im ListBox scheint dies nicht zu mögen, wahrscheinlich aufgrund der Virtualisierung. Während Sie scrollen, ändert der Schieberegler an der Scrollleiste seine Größe, abhängig davon, wie viele Elemente tatsächlich in das Feld passen, zu diesem aktuellen Zeitpunkt. Dies macht den Schieberegler manchmal sehr groß und manchmal sehr klein.
Da sich dieses ListBox auch innerhalb eines TabControls befindet, wird das ListBox beim Wechsel von einem Tab zum anderen oft zu einem anderen Abschnitt scrollen, wenn Sie zu ihm zurückkehren.
Irgendwelche Ideen, wie man ein solches Problem lösen kann?
Zusätzliche Informationen: Das Deaktivieren der Virtualisierung behebt das Scrollproblem, allerdings auf Kosten einer langsameren anfänglichen Anzeige. Das Ändern der Größe des ListBox-Inhalts führt jedoch zu einer starken Verzögerung beim horizontalen Ändern der Größe (vertikal ist in Ordnung), was ich auf die Änderung der Breite meines Templates zurückführe und eine Neuberechnung jedes Elements erfordere:
Dies zeichnet Rahmen um die Ränder der Felder, um eine visuelle Gruppierung zu erstellen, wobei val sich an die Inhaltsgröße anpassen wird. Das Listbox hat auch HorizontalContentAlignmment = Stretch, um sicherzustellen, dass dies korrekt aussieht.
\-------------------
- var - opt - val -
- -------------
- - opt - val -
- -------------
- - opt - val -
-------------------
Hinweis: Wenn dies in einer separaten Frage erörtert werden muss, lassen Sie es mich wissen und ich werde die Fragen trennen