Précédent   Forum du club des développeurs et IT Pro > Dotnet > Développement Windows > WinRT
WinRT Forum d'entraide sur le développement d'applications Metro pour Windows 8 avec WinRT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/06/2012, 13h39   #1
yupa
Membre du Club
 
Inscription : mai 2005
Messages : 192
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 192
Points : 44
Points : 44
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?
yupa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2012, 12h12   #2
yupa
Membre du Club
 
Inscription : mai 2005
Messages : 192
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 192
Points : 44
Points : 44
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
yupa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h15.


 
 
 
 
Partenaires

Hébergement Web