GridView avec 2 colonnes, remplir la largeur

Le résultat que je veux obtenir, c'est assez simple, une liste avec 2 colonnes, à la fois avec la même largeur. Dans Windows Phone 7/8 cela pourrait facilement être réalisé à l'aide d'un ListBox avec un WrapPanel comme ItemsPanel et le réglage de la ItemWidth à 240 (comme la largeur de l'écran est de 480).

Maintenant, je suis en train d'Écrire une App Universelle, mais ici, le problème est que l'écran n'est pas garanti pour une largeur de 480 (même pas pour le Téléphone il me semble) donc je ne peux pas définir le ItemWidth comme je le veux pour remplir la largeur de l'écran. J'ai été en mesure de réaliser presque l'effet désiré à l'aide de la suite de 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>

Qui donne le résultat suivant:
GridView avec 2 colonnes, remplir la largeur

Comme on le voit avec succès donne 2 colonnes de largeur égale, MAIS la Grid dans le GridView.ItemTemlate de ne pas remplir toute la largeur de chaque colonne. J'ai essayé de réglage HorizontalAlignment="Stretch" sur les deux que Grid et sur la GridView lui-même sans aucun succès. Quelqu'un a une idée de ce faire?

OriginalL'auteur Johan Falk | 2014-04-17