Frage

Die Stackpanel ist nicht zusammenwirken. Wir haben eine feste Breite und eine variable Anzahl von Elementen von links nach rechts hinein zu legen.

Wir haben einen Artikel-Steuerelement, das sich 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 Gegenstände, die sie auf der rechten Seite abgeschnitten, anstatt so bemessen, dass sie alle passen. Jede Idee, wie dies zu erreichen? Ich würde ein Gitter verwenden, wenn die Anzahl der Elemente konstant ist, ist es aber nicht. Es ist in der Regel 1-4 Artikel.

Es wäre schön, wenn die Itemspaneltemplate ein Gitter mit einer variablen Anzahl von Spalten sein könnten. Aber ich weiß nicht, ob das (oder etwas mit dem gleichen Ergebnis) ist möglich in einem Itemspaneltemplate.

Ist die Antwort eine spezielle Unterklasse von Platte zu schreiben, die gleiche Breite ordnet Elemente enthalten?

War es hilfreich?

Lösung

Ich denke, was Sie wollen, ist die Uniform. Sie können angeben, dass es eine Zeile hat, und es sollten alle Elemente Layout im Inneren die gleiche Breite haben. Dies kann nicht genau das, was Sie suchen, aber das ist die nächste, die ich mir vorstellen kann.

Ich bin mir nicht sicher, ob das Silverlight-Toolkit eine solche Komponente bietet, aber ich habe Beiträge gesehen, die zeigen, wie man bauen.

Jeff Wilcox Blog zum Beispiel hat einen.

Andere Tipps

Ich bin wahrscheinlich ein wenig der alten Schule, aber Ich mag diese Art der Sache zu tun selbst. Sie können ein wenig Code auf dem Back-End schreiben eine dynamische Anzahl der Elemente in dem Raum zu fallen (vergittert), und ihnen eine dynamische Breite machen und gleichmäßigen Abständen.

Dies würde, wie Sie wollen wahrscheinlich arbeiten, und seine modifizierbar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top