Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre du Club
    Inscrit en
    mai 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 192
    Points : 48
    Points
    48

    Par défaut Créer un template dynamiquement

    Bonjour,

    Je débute en C#/Xaml pour win8.
    J'ai un fichier qui contient plusieurs images que j'affiche dans un FlipView. Jusque la pas de problème, je me suis servi d'une DataTemplate, et un DataTemplateSelector :
    Code xaml :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <DataTemplate x:Key="PageTemplate">
                <Border Background="Orange">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="300"/>
                        </Grid.ColumnDefinitions>
                        <Grid Grid.Column="0">
                            <StackPanel x:Name="ImagePanel" Height="669" Margin="20,10,10,0" VerticalAlignment="Top" Width="1036" HorizontalAlignment="Center" Orientation="Horizontal">
                                <Image x:Name="ImageView" Source="{Binding ImageData}" Margin="0,10,10,10"
                                        HorizontalAlignment="Center"
                                        VerticalAlignment="Bottom"/>
                            </StackPanel>
                        </Grid>
                        <Grid Grid.Column="1">
                            <TextBlock x:Name="ImageNameFied" Text="{Binding PageText}" TextWrapping="Wrap" Margin="10,10,10,10" 
                               FontSize="24"
                               Foreground="AliceBlue"
                               HorizontalAlignment="Center"
                               VerticalAlignment="Center"/>
                        </Grid>
                    </Grid>
                </Border>
            </DataTemplate>
            <!-- Instanciation du template selector pour le flipview -->
            <local:MZPageTemplateSelector x:Key="pageTemplateSelector" PageTemplate="{StaticResource PageTemplate}"/>
    ...
    Code xaml :
    1
    2
    3
    <Grid x:Name="MainGrid" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
            <FlipView x:Name="pageFlipView" ItemTemplateSelector="{StaticResource pageTemplateSelector}"></FlipView>
        </Grid>
    Et dans le code C#:
    Code c# :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class MZPageTemplateSelector : DataTemplateSelector
        {
            public DataTemplate PageTemplate { get; set; }
     
            protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
            {
                if (item is ImagePage)
                {
                    return this.PageTemplate;
                }
                return base.SelectTemplateCore(item, container);
            }
        }

    Maintenant, il peut arriver que l'image que je dois afficher soit constituée de plusieurs images, des Tiles. Bien évidement, je ne connais pas à l'avance le nombre tiles par ligne et par colonne.
    Pour afficher ces images constituées de tiles, j'avais fais en C# une fonction qui construit le bon nombre d'Image (Windows.UI.Xaml.Controls) dans un un grid. Et ca marchait sans problème. (pas sur que ce soit la meilleure méthode d’ailleurs)

    Mais comment faire ce genre de construction d'objet graphique dynamiquement avec des template? et comment faire le Bind dans ce cas la?
    Ou sinon est qu'il est possible de construire un seul objet BitmapImage a partir de plusieurs BitmapImage?

  2. #2
    Membre du Club
    Inscrit en
    mai 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 192
    Points : 48
    Points
    48

    Par défaut

    J'ai résolu mon Pb avec :
    http://www.developpez.net/forums/d12...e-usercontrol/

    et sinon il y a la fonction Blit de de la class WriteableBitmap

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •