01/07/2013

[WindowsPhone] Application Bar

Bonjour à toutes et à tous,
je souhaitais commencer par quelque chose de simple pour ce premier article parce qu'en même temps je souhaite tenter un expérience nouvelle en proposant, en plus des sources mise à disposition en fin d'article, de réaliser une vidéo explicative consultable depuis le blog. Surtout n'hésitez pas à commenter pour si ça vaut le coup de continuer. Allez c'est parti...

Donc on démarre par le contrôle Application Bar. C'est pas le contrôle le compliqué du monde mais il faut bien connaître certaines spécificités notamment si l'on recherche à globaliser son application.

Application Bar



        
            
        
    

Comme vous le constatez, on va chercher la propriété ApplicationBar dans notre classe PhoneApplication qui se trouve dans le namespace Phone. Et Ensuite va chercher l'interface IApplicationBar qui elle se trouve dans le namespace shell (pour plus d'infos sur IApplicationBar).

Ensuite on dispose de deux collections d'éléments pour travailler :
  • Buttons (gére la collection d'objets de type ApplicationBarIconButton)
  • MenuItems (gére la collection d'objets de type ApplicationBarMenuItem)

Collection d'ApplicationBarIconButton

Alors ces ApplicationsBarIconButton vont fonctionner de la manière suivante :


        
            
        
    

  • le cercle autour des éléments est créé automatiquement
  • quelque soit la casse qui est utilisée, le texte sera affiché en minuscule
  • le mot représentant la commande ne devra pas dépasser environ 10 caractères sinon le reste ne sera pas affiché
  • Jusqu'à 4 éléments

Donc vous vous demandez maintenant comment je vais trouver de beaux boutons en flat design (modern UI). En fait vous les avez déjà et ils sont installés avec le SDK sur votre poste (C:\Program Files(x86)\Microsoft SDK\Windows Phone\[Version]\Icons\[Theme]\). Alors les principaux seulement mais de nombreux sites en propose.

Collection d'ApplicationBarMenuItem

Les ApplicationBarMenuItem doivent être défini dans la collection MenuItems de l'ApplicationBar:


        
            
            
                
            
        
    

Globalisation

Il est vrai qu'en développant à destination de "marchés" (App Store, Store, Marketplace, etc...) on souhaite toucher le plus grand nombre d'utilisateurs et bien souvent il faudra penser à globaliser son application. Lorsqu'on génère un projet, toute la mécanique est déjà en place.

Une des particularités de l'ApplicationBar est qu'on ne va pas pouvoir effectuer de Binding sur les propriétés "Text" par conséquent, on gère tout cela côté code behind:

        private void GeolocalizeApplicationBar()
        {
            var myResearchButton = (ApplicationBarIconButton)ApplicationBar.Buttons[0];
            myResearchButton.Text = AppResources.ApplicationBarResearch;

            var myResearchMenuItem = (ApplicationBarMenuItem)ApplicationBar.MenuItems[0];
            myResearchMenuItem.Text = AppResources.ApplicationBarResearch;         
        }
On fait donc un cast notre item que l'on va chercher dans les collections de la propriété ApplicationBar de notre PhoneApplicationPage et on lui affecte la valeur qu'on aura au préalable définie dans le fichier de ressources (cf. vidéo).

Conclusion

Bon voilà pour ce point vous pouvez retrouvez les sources du projets ici

Et voici la démo vidéo :


A bientôt

Aucun commentaire:

Enregistrer un commentaire