none
Un template pour toute la page RRS feed

  • Question

  • Bonjour,

    Débutant, j'ai besoin d'aide.

    Sur une page Pivot, j'utiliser 2 / 3 Header qui contiennent tous des ScrollViewer. Mon problème est que si je souhaite modifier le style du scroll, je dois le faire 3 fois. Comment pourrai-ton créer un template du scrollViewer en et l'utiliser autant de fois que je veux ?

     <!--Élément un de tableau croisé dynamique-->
                <controls:PivotItem Header="Surfaces">
                    <Grid Grid.Row="1" Margin="12,0,12,0">
                        
                        <ScrollViewer>
                            <ItemsControl x:Name="Pivot1">
                                <ItemsControl.ItemTemplate>
                                    <DataTemplate>
                                        <Border>
                                            <Grid>
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="Auto" />
                                                    <ColumnDefinition Width="*" />
                                                </Grid.ColumnDefinitions>
                                                <Image Grid.Column="0" Grid.RowSpan="2"
                                                 Source="{Binding Icon}"
                                                 Height="70"
                                                 Width="70"
                                                       Margin="6" />
                                                <StackPanel Grid.Row="0" Grid.Column="1"  
                                                 Orientation="Horizontal"
                                                 VerticalAlignment="Center">
                                                    <TextBlock Text="{Binding Name}" Foreground="Black" Style="{StaticResource PhoneTextTitle2Style}" />
                                                </StackPanel>
                                            </Grid>
                                        </Border>
                                    </DataTemplate>
                                </ItemsControl.ItemTemplate>
                            </ItemsControl>
                        </ScrollViewer>
                        
                    </Grid>
    
                </controls:PivotItem>
    
                <!--Élément deux de tableau croisé dynamique-->

    Merci de votre aide
    lundi 13 février 2012 13:41

Réponses

  • Bonjour,

    Le plus simple est de créer un template dans ta page en utilisant Blend. Il suffit de sélectionner le contrôle ScrollViewer puis clique-droit => "Edit template" => "Edit a copy...". Tu pourra ensuite réutiliser ce template sur tes autres contrôles ScrollViewer.


    Pour que la discussion puisse être identifiée comme résolue merci de marquer les réponses qui vous ont aidées à solutionner votre problème comme "réponse".

    lundi 13 février 2012 14:36
  • J'ajouterais juste par rapport à la réponse de BadProcess, que lorsque tu fais créer une copie, tu peux choisir entre stocker le template dans ta page ou dans l'App.xaml, ton template sera alors accessible de partout.

    Pour utiliser un template existant, il suffit de faire : Clic droit sur le controle > Template/Style > Apply resource et de selectionner celui que tu veux


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    lundi 13 février 2012 15:38
    Modérateur
  • De rien, mais tu t'embêtes pour rien, utilise blend :D

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    lundi 13 février 2012 17:52
    Modérateur

Toutes les réponses

  • Bonjour,

    Le plus simple est de créer un template dans ta page en utilisant Blend. Il suffit de sélectionner le contrôle ScrollViewer puis clique-droit => "Edit template" => "Edit a copy...". Tu pourra ensuite réutiliser ce template sur tes autres contrôles ScrollViewer.


    Pour que la discussion puisse être identifiée comme résolue merci de marquer les réponses qui vous ont aidées à solutionner votre problème comme "réponse".

    lundi 13 février 2012 14:36
  • J'ajouterais juste par rapport à la réponse de BadProcess, que lorsque tu fais créer une copie, tu peux choisir entre stocker le template dans ta page ou dans l'App.xaml, ton template sera alors accessible de partout.

    Pour utiliser un template existant, il suffit de faire : Clic droit sur le controle > Template/Style > Apply resource et de selectionner celui que tu veux


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    lundi 13 février 2012 15:38
    Modérateur
  • Bonjour et merci de vos réponse, j'ai donc creusé avec Blend mais je ne savais pas si il fallait quel projet il fallait créer (Projet / Application WP ou Projet / Bibliothèque de contrôle)...

    Alors j'ai creusé le sujet et directement dans VS2010, j'ai ajouté un Usercontrol ; Il m'a créé seul une base dans laquel (au Grid) j'ai collé mon code) :

    <UserControl x:Class="monappli.ItemFigure"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
          x:Name="ItemFigureControl"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        d:DesignHeight="134" d:DesignWidth="480">
       
        <Grid x:Name="LayoutRoot">
            <Border>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Image Grid.Column="0"
                                                 Source="{Binding Icon}"
                                                 Height="70"
                                                 Width="70"
                                                       Margin="6" />
                    <StackPanel Grid.Column="1" 
                                                 Orientation="Horizontal"
                                                 VerticalAlignment="Center">
                        <TextBlock Text="{Binding Name}" Foreground="Black" Style="{StaticResource PhoneTextTitle2Style}" />
                    </StackPanel>
                </Grid>
            </Border>
        </Grid>
    </UserControl>

    Puis dans ma page XAML, j'ai ajouté cela, mais j'ai eu du mal à touver et comprendre mais ca marche  :

        xmlns:local="clr-namespace:Monappli"

    et enfin :

     <!--Élément deux de tableau croisé dynamique-->
                <controls:PivotItem Header="Volumes">
                    <Grid Grid.Row="1" Margin="12,0,12,0">
     
                        <ScrollViewer>
                            <ItemsControl x:Name="volumes">
                                <ItemsControl.ItemTemplate>
                                    <DataTemplate>
                                        <local:ItemFigure  />
                                    </DataTemplate>
                                </ItemsControl.ItemTemplate>
                            </ItemsControl>
                        </ScrollViewer>
     
                    </Grid>
                </controls:PivotItem>

    Et ça marche par magie !

    Merci de votre aide

    lundi 13 février 2012 16:49
  • De rien, mais tu t'embêtes pour rien, utilise blend :D

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    lundi 13 février 2012 17:52
    Modérateur