IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Windows Phone 7 - Tutoriel 19 : Modèle de contrôle

Créer un bouton personnalisé avec un modèle de contrôle et le gestionnaire d'état visuel en utilisant Silverlight sur Windows Phone 7

Ce tutoriel fait partie d'une série de niveau débutant-intermédiaire pour apprendre Windows Phone 7 par le biais d'exemples pas à pas.

Langage : C#

Public visé : niveau Débutant

Commentez ce tutoriel : 3 commentaires Donner une note à l´article (5)

Article lu   fois.

Les trois auteurs et traducteur

Profil ProSite personnel

Traducteur : Profil Pro

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Traduction

Introduction

Les modèles de contrôle permettent au « look and feel » des contrôles sur Windows Phone 7 de différer pour une expérience utilisateur flexible au-delà de la norme, telle que la personnalisation de l'apparence d'un bouton et de son comportement en utilisant le gestionnaire d'état visuel.

Créer un bouton personnalisé avec un modèle de contrôle et le gestionnaire d'état visuel en utilisant Silverlight sur Windows Phone 7

Étape 1

Démarrez Microsoft Visual Web Developer 2010 Express pour Windows Phone, ensuite sélectionnez Fichier puis Nouveau Projet… Sélectionnez Visual C# ensuite Silverlight for Windows Phone puis Application Windows Phone dans les modèles installés, sélectionnez un emplacement si vous le souhaitez, puis entrez un nom pour le projet et appuyez sur OK :

D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 1\Step 1.png

Étape 2

Une page Application Windows Phone nommée MainPage.xamldevrait alors apparaître :

D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 1\Step 2.png

Étape 3

Puis dans le volet XAML pour MainPage.xaml, en dessous de l'entrée x:Class="ControlTemplate.MainPage", tapez le code XAML namespace suivant :

 
Sélectionnez
xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"
D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 19\Step 3.png

Étape 4

Puisque nous en sommes au volet XAML, au-dessus de la ligne <Grid x:Name="LayoutRoot" Background="Transparent"> tapez le code XAML suivant :

 
Sélectionnez
<phone:PhoneApplicationPage.Resources>
  <Style x:Key="CircleButton" TargetType="Button">
    <Setter Property="Foreground" Value="White"/>
    <Setter Property="FontWeight" Value="Bold"/>
    <Setter Property="Background">
      <Setter.Value>
        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
          <GradientStop Offset="0" Color="#FFFF281E"/>
          <GradientStop Offset="1" Color="#FFFA9024"/>
        </LinearGradientBrush>
      </Setter.Value>
    </Setter>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="Button">
          <Grid>
            <vsm:VisualStateManager.VisualStateGroups>
              <vsm:VisualStateGroup x:Name="CommonStates">
                <vsm:VisualState x:Name="Disabled"/>
                <vsm:VisualState x:Name="Normal"/>
                <vsm:VisualState x:Name="MouseOver"/>
                <vsm:VisualState x:Name="Pressed">
                  <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Inner"
                        Storyboard.TargetProperty="(ScaleTransform.ScaleY)">
                      <DiscreteObjectKeyFrame KeyTime="0:0:0.0" Value="1"/>
                    </ObjectAnimationUsingKeyFrames>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Outer"
                        Storyboard.TargetProperty="(ScaleTransform.ScaleY)">
                      <DiscreteObjectKeyFrame KeyTime="0:0:0.0" Value="-1"/>
                    </ObjectAnimationUsingKeyFrames>
                  </Storyboard>
                </vsm:VisualState>
              </vsm:VisualStateGroup>
              <vsm:VisualStateGroup x:Name="FocusStates">
                <vsm:VisualState x:Name="Focused"/>
                <vsm:VisualState x:Name="Unfocused"/>
              </vsm:VisualStateGroup>
            </vsm:VisualStateManager.VisualStateGroups>
            <Ellipse Margin="4" Fill="{TemplateBinding Background}" 
                RenderTransformOrigin="0.5,0.5">
              <Ellipse.RenderTransform>
                <ScaleTransform ScaleY="1" x:Name="Outer"/>
              </Ellipse.RenderTransform>
            </Ellipse>
            <Ellipse Margin="20" Fill="{TemplateBinding Background}" 
                RenderTransformOrigin="0.5,0.5">
              <Ellipse.RenderTransform>
                <ScaleTransform ScaleY="-1" x:Name="Inner"/>
              </Ellipse.RenderTransform>
            </Ellipse>
            <ContentPresenter x:Name="content" HorizontalAlignment="Center" VerticalAlignment="Center"/>
          </Grid>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
</phone:PhoneApplicationPage.Resources>
D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 19\Step 4-1.png
D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 19\Step 4-2.png

Étape 5

Retournez au concepteur de vues MainPage en sélectionnant l'onglet MainPage.xaml. Puis dans la section Contrôles Windows Phone de la Boîte à outils, sélectionnez le contrôle Button :

D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 19\Step 5.png

Étape 6

Dessinez un bouton sur la page en glissant un bouton de la Boite à outils sur la page, ensuite dans le volet XAML entre les lignes <Grid x:Name="ContentGrid" Grid.Row="1"> et </Grid>, modifiez la ligne Button1 comme ceci :

 
Sélectionnez
<Button Height="250" Width="250" Style="{StaticResource CircleButton}" Content="Tap Here" Name="HelloWorld"/>

Voir ci-dessous :

D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 19\Step 6.png

Étape 7

Le bouton devrait avoir le style CircleButtonappliqué et ne devrait pas apparaître comme un bouton standard sur Windows Phone 7. Faites un double-clic sur le contrôle Button et tapez ceci dans la méthode HelloWorld_Click :

 
Sélectionnez
PageTitle.Text = "Hello World";
D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 19\Step 7.png

Étape 8

Enregistrez le Projet maintenant que vous avez terminé l'application Windows Phone Silverlight. Sélectionnez l'option Windows Phone Emulator ensuite sélectionnez Debug puis Démarrer le débogage ou cliquez sur Démarrer le débogage:

D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 1\Step 7.png

Dès que vous l'aurez fait, ce qui suit apparaîtra dans l'émulateur Windows Phone une fois chargé :

D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 19\Step 8.png

Étape 9

Maintenant cliquez sur « Tap Here » et le nom de la page se changera en Hello World :

D:\Work\Traduction Article\Windows Phone 7 Tutorial Series\images\Tutorial 19\Step 9.png

Étape 10

Vous pouvez ensuite Arrêter l'application en sélectionnant la fenêtre d'application Visual Studio 2010 et en cliquant sur le bouton Arrêter le débogage:

image

Conclusion

Il s'agit d'un exemple simple de comment personnaliser le modèle de contrôle d'un contrôle tel qu'un bouton. Il est possible de modifier le « look and feel » d'autres contrôles ou d'ajouter davantage de comportements - personnalisez-le !

Liens

Remerciements

Je tiens ici à remercier Peter Bull de m'avoir autorisé à traduire son tutoriel.
Je remercie Jean-Michel Ormes pour sa relecture technique et ses propositions.
Je remercie également FirePrawn pour sa relecture orthographique et ses propositions.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2012 Peter Bull. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.