Affichage des articles dont le libellé est Vidéo. Afficher tous les articles
Affichage des articles dont le libellé est Vidéo. Afficher tous les articles

08/07/2013

[WindowsPhone] SystemTray et ProgressIndicator

Bonjour à toutes et à tous,
aujourd'hui ce sera le tour du SystemTray et du ProgressIndicator. Vraiment une fonctionnalité indispensable pour vos utilisateurs afin qu'ils puissent vérifier leur réseau avant d'incriminer votre application. ^^

SystemTray

Alors pour le SystemTray, il faut que celui ci soit bien défini comme visible dans la balise PhoneApplicationPage :

    shell:SystemTray.IsVisible="True"

Pour jouer sur l'opacité du SystemTray, ça se joue toujours au même endroit :

    shell:SystemTray.Opacity="0.5"

ProgressIndicator

Nous le retrouvons dans le namespace shell en tant que propriété de la SystemTray et on lui passe la classe ProgressIndicator disponible dans le shell :


   
      
      
   

Alors un petit conseil d'utilisation qui a été pas mal relayé: lorsque vous effectuer votre Binding ou que vous assignez la valeur IsVisible pensez à systématiquement affecter la même valeur à la propriété IsIndeterminate. Tout simplement parce que même si votre ProgressIndicator n'est plus visible, il continu de consommer des ressources pour l'aspect indéterminé.

Maintenant, nous avons également la possibilité de personnaliser le texte de ce ProgressIndicator qui devra être bien évidemment globalisé.

On modifie le fichier de ressources :

Et il ne nous reste plus qu'à effectuer notre Binding.


   
      
      
   

Le résultat sur l'émulateur:

Conclusion

Voilà c'est tout. Vous pouvez retrouver les sources ici.
Et la vidéo :

A bientôt.

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