[WinRT] FlipView vertical

Vous connaissez tous le contrôle FlipView qui se branche sur une liste et affiche un élément à la fois, tout en permettant de naviguer de l’un à l’autre d’une pichenette du doigt.

Le comportement par défaut déroule les éléments horizontalement, sauf qu’on aimerait bien basculer en mode vertical ! (vu le titre de l’article, vous l’aviez déjà deviné non ? :-))

Premier réflexe : on cherche une propriété de type Orientation, comme sur notre bon vieux StackPanel. Grosse déception : il n’y en a pas !

On tripatouille sur internet via notre moteur de recherche préféré, peu de succès, moments de doute … jusqu’à ce que je me rende compte que Javascript a un léger avantage puisqu’il l’a, lui, son attribut Orientation.

Allez, on ne désespère pas ! Le template du contrôle contient les propriétés VerticalNextTemplate et VerticalPreviousTemplate, c’est bien que c’est prévu quelque part !

Après un long jeu de piste, je reviens sur mon bon vieil ami msdn, et là bingo ! La solution :

<FlipView ItemsSource="{Binding Images}">
    <FlipView.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel Orientation="Vertical" />
        </ItemsPanelTemplate>
    </FlipView.ItemsPanel>
    <FlipView.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding}" />
        </DataTemplate>
    </FlipView.ItemTemplate>
</FlipView>

Et voilà, il suffisait simplement de changer l’Orientation non pas de la FlipView, mais de l’ItemsPanel :-)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>