Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

Des transitions de page à la Windows 8 pour WPF (et Silverlight)

[new:31/12/2012]Les menus à tuiles c’est joli (voir le billet du 21 novembre pour un contrôle gratuit avec source) mais pour donner encore plus de fraicheur Windows 8 à vos applications WPF, rien ne vaut une transition de page discrète à la Modern UI…

Ah Modern UI !

On dira ce qu’on voudra, mais cet OS est plein de bonnes idées. Je l’adore. Toutes mes machines en sont équipées, des portables aux machines neuves en passant par les anciennes qui ne mettent plus 10 minutes à booter et retrouvent ainsi une rieuse jeunesse. Sans parler de ma Surface.

Pour que les choses soit vraiment claires et que mon intégrité d’expert indépendant (c’est le statut d’un MVP) reste crédible, je ne serai pas totalement franc si je ne vous disais pas que sur PC j’ai bien remarqué quelques problèmes, je ne suis pas aveugle… il y a des choses qui me gênent vraiment.
Par exemple il va falloir que Microsoft rendre le “S” à Windows, car du full-screen sur des PC suréquipés avec écrans multiples c’est tout simplement digne des lapins crétins. Le bureau de Windows doit être unifier, un seul bureau, pas deux, et si WinRT veut se faire une place sur les PC il devra apprendre à faire vivre ses applications dans des fenêtres. A moins que Microsoft ne choisissent définitivement l’option de la scission comme cela semble se profiler : un Windows “grand public” et un autre pour les professionnels… Bien évidemment cela éviterait d’avouer que pour les PC il y a eu une erreur d’approche, cela éviterait aussi l’impression étrange d’un OS à deux têtes incompatibles entre elles, certes. Mais j’aime la concorde et l’harmonie, et je préfèrerais franchement qu’après avoir unifier les form factors, Windows s’unifie lui-même !

Alors si vous n’avez pas décidé de vous lancer uniquement sur les tablettes et les smartphones, si pour vous le marché du PC reste incontournable, vous savez qu’il ne reste plus que WPF comme choix raisonnable pour développer… De Vista à Windows 8, seul WPF offre une compatibilité qui évite d’avoir à mettre ses œufs dans le même panier et une modernité que seule Xaml peut apporter. En tant que développeur c’est un choix évident. En tant qu’éditeur de logiciel il faut aussi être présent sur WinRT même sur PC j’en suis convaincu – question d’image - mais pour vendre il faut un équivalent en WPF…

C’est pourquoi je vous ai proposé dernièrement un menu à tuile pour WPF (voir le lien en tête de billet) et que je vous propose aujourd’hui des transitions de page automatiques à la Windows 8. WPF permet de tout faire, sur de nombreuses plateformes, et avec un peu d’astuce on peut même développer pour WPF et WinRT avec un code partagé. WPF est une solution qui répond à tous les besoins : la compatibilité avec les OS en place, le besoin de modernité, la qualité de l’UX et de l’UI, l’exploitation des compétences déjà acquises en entreprise avec .NET.

Une conteneur Animé

L’idée est simple, MS l’a fait, d’autres ont tenté le coup en faisant des contrôles plus ou moins bien réalisés, mais l’idée est de Microsoft.

WPF fonctionne en bureau classique et marche aussi sur Windows 7, tout de suite cela lui donne un intérêt particulier, surtout si on sait l’habiller un peu Metro…

Et le control Animé ?

Je vais vous donner le source, vous pourrez jouer avec autant que vous voulez. Ne soyez pas si impatients !

Le principe

Le control est du type ContentControl. Il expose une propriété Content, et on y met ce qu’on veut pour changer l’affichage. Par exemple, dans une application MVVM c’est le Shell qui se sert de ce conteneur pour afficher les vues (personnellement j’utilise des UserControl pour les Views).

Seule différence avec le conteneur standard : il prend un cliché de l’affichage actuel, et génère des animations pour ce dernier et le nouveau contenu de telle façon à créer une animation souple, rapide et agréable (et sans memory leaks, du moins j’ai fait très attention à ce point).

L’effet se joue à peu de choses, quelques pourcents par ici, le choix de la fonction de easing, la durée des timelines, les valeurs initiales, le point de départ de l’animation sur l’axe des X, le petit coup de fading, etc.

Je suis arrivé à un réglage qui me plait. A vous de le personnaliser selon vos gouts !

Le cadeau

C’est le code, gratuit, que demander de mieux…

Enaxos Animation (VS 2012) Animated Content

A noter que le code devrait tourner sous Silverlight directement mais je n’ai pas encore fait l’essai.

Conclusion

Un petit pas pour le développeur, un grand pas, peut-être, pour redonner gout au développement WPF. Eclipsé par Silverlight pendant un temps, il reste la seule alternative crédible pour faire des applications modernes qui marchent sur toutes les versions de Windows récentes. C’est une technologie sure, éprouvée, sans mystère, puissante, conforme à toutes les guidelines modernes et qui tourne sur tous les OS récents.

Développez pour Windows 8 en WinRT, c’est génial et c’est certainement l’avenir. Je ne veux pas vous en détourner.

Mais si vous voulez manger, pour l’instant en tout cas, n’oubliez pas que WPF est lui aussi vraiment génial … et qu’il tourne sur Windows 7 que les entreprises commencent seulement à adopter…

Et Stay Tuned !

blog comments powered by Disqus