GridView mit 2 Spalten füllen Breite

Den Ergebnissen, die ich erreichen möchte, ist es ziemlich einfach, eine Liste mit 2 Spalten, die beide die gleiche Breite. In Windows Phone 7/8 dies kann leicht erreicht werden durch ein ListBox mit einem WrapPanel als ItemsPanel und Einstellung der ItemWidth 240 (als der Bildschirm breit war 480).

Jetzt Schreibe ich eine Universal-App, aber hier ist das problem, dass der Bildschirm ist nicht eine Garantie auf eine Breite von 480 (auch nicht für das Telefon, es scheint), so kann ich nicht die ItemWidth wie ich will, es füllt die gesamte Breite des Bildschirms. Ich habe in der Lage zu erreichen, fast den gewünschten Effekt mit der folgenden XAML:

<GridView ItemsSource="{Binding Results}" Margin="12">
    <GridView.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Image Source="{Binding SampleImage}" />
            </Grid>
        </DataTemplate>
    </GridView.ItemTemplate>

    <GridView.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapGrid MaximumRowsOrColumns="2" Orientation="Horizontal" HorizontalChildrenAlignment="Stretch" VerticalChildrenAlignment="Stretch">
            </WrapGrid>
        </ItemsPanelTemplate>
    </GridView.ItemsPanel>
</GridView>

Gibt das folgende Ergebnis:
GridView mit 2 Spalten füllen Breite

Gesehen ist es erfolgreich gibt 2 Spalten die gleiche Breite, ABER die Grid im GridView.ItemTemlate füllt nicht die ganze Breite der einzelnen Spalte. Ich habe versucht Einstellung HorizontalAlignment="Stretch" auf, dass sowohl Grid und auf die GridView selbst ohne Erfolg. Wer hat eine Idee dieses zu tun?

InformationsquelleAutor Johan Falk | 2014-04-17

Schreibe einen Kommentar