Ich habe ein Listenfeld wie folgt definiert:WPF: WrapPanel in Itemspaneltemplate erweitert Liste Breite
<ListBox.ItemTemplate>
<DataTemplate>
<ItemsControl>
<!-- Contents here -->
</ItemsControl>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Mein Problem ist folgendes: Diese Liste in einer Grid-Control enthalten ist, und sollte den gesamten verfügbaren Speicherplatz der Zelle verwenden, in der er enthalten ist, aber es sollte den Eltern nicht das Zuweisen von MEHR Speicherplatz erzwingen. Was aber passiert, ist, dass, sobald das Wrap-Panel voll ist, anstatt die Elemente tatsächlich in die nächste Zeile zu legen (wie es sollte), es erweitert nur die Breite des Listenfelds und zwingt das Eltern-Grid dazu, die Größe ebenfalls zu ändern.
Wie kann ich erreichen, dass das Wrap-Panel die Größe des übergeordneten Elements respektiert und nicht erzwingt, dass seine Größe vergrößert wird?
Vielen Dank im Voraus!
bearbeiten: Eine weitere Sache. Ich kann die Breite des Wrappens explizit festlegen, um es zu umbrechen, aber ich möchte, dass das Wrappel die gleiche Größe wie das Listenfeld hat.
Leider, das nicht funktioniert ... Ich habe versucht, sowohl sie versteckte und Disabled gestellt, und es dehnt sich immer noch den Raum nutzt. :( Beachten Sie, dass das Problem nie war, dass die Listbox größer als das Raster wurde, in dem es war (so eine Bildlaufleiste angezeigt würde), das Problem ist, dass die Grid-Zelle, in der es ist, vergrößert ist, und die Listbox mit. – Hallgeir
noch eine Sache.Das Gitter ist in einem uniformgrid enthalten, kann das das Problem sein? Vielleicht uniformgrid enthält nicht das Gitter und deshalb expandiert. – Hallgeir
In Ihrer Frage erwähnt Sie Wrappanel und nicht uniformgrid. Mein Code behebt Ihr Problem wie Sie Wenn Sie auch ein Problem mit uniformgrid als Itemspanel in Listboxen haben, sollten Sie eine andere Frage schreiben: –