Das Stackpanel arbeitet nicht zusammen. Wir haben eine feste Breite und eine variable Anzahl von Elementen, die von links nach rechts darin angeordnet werden.Silverlight 2: Soll eine variable Anzahl von Elementen eine feste Breite einnehmen
Wir haben ein Stückkontrolle, die sie aus mit einem Stapel Tafel legt:
<ItemsControl x:Name="testItems"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Stacktest:ItemControl />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Aber dies bedeutet nicht Größe die Elemente richtig. Sie sind immer gleich groß, unabhängig davon, wie viel Platz zur Verfügung steht. Wenn es zu viele Elemente gibt, werden sie auf der rechten Seite abgeschnitten und nicht so groß, dass sie alle hineinpassen. Gibt es eine Idee, wie das erreicht werden kann? Ich würde ein Raster verwenden, wenn die Anzahl der Elemente konstant ist, aber nicht. Es sind typischerweise 1-4 Artikel.
Es wäre nett, wenn die ItemsPanelTemplate ein Raster mit einer variablen Anzahl von Spalten sein könnte. Aber ich weiß nicht, ob das (oder etwas mit dem gleichen Ergebnis) in einem ItemsPanelTemplate möglich ist.
Ist die Antwort zum Schreiben einer speziellen Unterklasse des Panels, die den enthaltenen Elementen die gleiche Breite zuweist?
Nach diesem (http://genescyconduit.wordpress.com/2008/08/19/the-neglected-panel-uniformgrid/) ein UniformGrid ist was ich will, weil Sie es als einheitliche StackPanel verwenden können spezifizierende Zeilen = "1" " – Anthony