3 Stimmen

WPF ListBox WrapPanel Clips lange Gruppen

Ich habe eine ListBox erstellt, um Elemente in Gruppen anzuzeigen, wobei die Gruppen von rechts nach links umgebrochen werden, wenn sie nicht mehr in die Höhe des ListBox-Panels passen. Die Gruppen würden also ähnlich wie hier in der Listbox erscheinen, wobei die Höhe jeder Gruppe willkürlich ist (Gruppe 1 ist z. B. doppelt so hoch wie Gruppe 2):

[ 1 ][ 3 ][ 5 ]
[   ][ 4 ][ 6 ]
[ 2 ][   ]

Die folgende XAML-Datei funktioniert korrekt, da sie den Umbruch durchführt und es ermöglicht, dass die horizontale Bildlaufleiste angezeigt wird, wenn die Elemente auf der rechten Seite der ListBox auslaufen.

<ListBox> 
  <ListBox.ItemsPanel> 
    <ItemsPanelTemplate> 
      <StackPanel Orientation="Vertical"/> 
    </ItemsPanelTemplate> 
  </ListBox.ItemsPanel> 

  <ListBox.GroupStyle> 
    <ItemsPanelTemplate> 
      <WrapPanel Orientation="Vertical" 
                 Height="{Binding Path=ActualHeight, 
                          RelativeSource={RelativeSource 
                            FindAncestor, 
                            AncestorLevel=1, 
                            AncestorType={x:Type ScrollContentPresenter}}}"/> 
    </ItemsPanelTemplate> 
  </ListBox.GroupStyle> 
</ListBox>

Das Problem tritt auf, wenn eine Gruppe von Elementen länger als die Höhe des WrapPanels ist. Anstatt die vertikale Bildlaufleiste erscheinen zu lassen, um die abgeschnittene Elementgruppe anzuzeigen, werden die Elemente in dieser Gruppe einfach abgeschnitten. Ich nehme an, dass dies ein Nebeneffekt der Höhenbindung im WrapPanel ist - die Bildlaufleiste denkt, dass sie nicht aktiviert werden muss.

Gibt es eine Möglichkeit, die Bildlaufleiste zu aktivieren, oder eine andere Möglichkeit, dieses Problem zu umgehen, die ich nicht sehe?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X