SlideShare une entreprise Scribd logo
1  sur  33
Animations et Transitions
Donnez une nouvelle dimension à vos applications
Windows Phone

Samuel Blanchard
Windows Phone MVP - Naviso
@samoteph

Jean-Sébastien Dupuy
Technical Evangelist – Microsoft France
@dupuyjs

Code/Développement
Présentation de la session
Comment faire une killer app ?
•
•

Données pertinentes
Design adapté

•

Animation !

#mstechdays

Code/Développement
Agenda
•
•
•
•

Animations avec XAML
Animations par le code
Animations par behavior
Transitions

#mstechdays

Code/Développement
ANIMATIONS
En avant les histoires !

#mstechdays

Code/Développement
Animation en Xaml

Premier pas dans l’animation : déclaration du Storyboard
<Border x:Name="LeRectangle"
Background="Blue"
BorderBrush="White"
BorderThickness="2">
<Border.Resources>
<Storyboard x:Name="LeStoryboard">
<DoubleAnimation
Storyboard.TargetProperty="(UIElement.Opacity)"
Storyboard.TargetName="LeRectangle"
From="0.0" To="1.0" Duration="0:0:0.500"
RepeatBehavior="Forever"/>
</Storyboard>
</Border.Resources>
</Border>

#mstechdays

Code/Développement
Animation en Xaml

Premier pas dans l’animation : exécution du Storyboard
private void LeBouton_Click(object sender, RoutedEventArgs e)
{
LeStoryboard.Begin();
}
<EventTrigger x:Name="LeTrigger" RoutedEvent="Border.Loaded">
<BeginStoryboard>
<Storyboard x:Name="LeStoryboard">
<DoubleAnimation
Storyboard.TargetProperty="(UIElement.Opacity)"
Storyboard.TargetName="LeRectangle"
From="0.0" To="1.0" Duration="0:0:1"
RepeatBehavior="Forever"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
#mstechdays

Code/Développement
A chaque animation sa solution
<DoubleAnimation
Storyboard.TargetName="MyAnimatedRectangle"
Storyboard.TargetProperty="Opacity«
From="1.0" To="0.0" Duration="0:0:5"
AutoReverse="True" />
<ColorAnimation
BeginTime="00:00:00"
Storyboard.TargetName="myStackPanel"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
From="Red" To="Green" Duration="0:0:4" />

<PointAnimation
Storyboard.TargetProperty="Center"
Storyboard.TargetName="MyAnimatedEllipseGeometry"
Duration="0:0:5" From="100,300" To="400,100"
RepeatBehavior="Forever" />
#mstechdays

Code/Développement
Key Frames ?

#mstechdays

Code/Développement
Key Frames

Version un peu plus avancée : définition d’une séquence

<Storyboard x:Name="LeStoryboard">
<ColorAnimationUsingKeyFrames
Storyboard.TargetName="LeBackgroundBrush"
Storyboard.TargetProperty="Color">
<DiscreteColorKeyFrame KeyTime="0:0:2" Value="BlueViolet"/>
<LinearColorKeyFrame KeyTime="0:0:4" Value="Green"/>
<LinearColorKeyFrame KeyTime="0:0:6" Value="Yellow"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>

#mstechdays

Code/Développement
#mstechdays

Code/Développement
Easing Functions & KeySpline
C’est un peu trop linéaire tout ca ?

#mstechdays

Code/Développement
Animation par le Code
Ou comment faire compliqué …  …
•

INDUSTRIALISER !

•
•

Génération d’un storyboard d’opacité
class Storyboard + DoubleAnimation

•
•

Begin et Completed
await FadeInAsync

#mstechdays

Code/Développement
Démo App de Compatibilité (Part 1)
• Storyboard

#mstechdays

Code/Développement
Tilt Effect
…

Behavior = étendre le comportement d’un
control
TiltEffect du Toolkit

#mstechdays

Code/Développement
TRANSITIONS
Entre deux

#mstechdays

Code/Développement
Transitions
Utilisation du Windows Phone Toolkit
private void InitializePhoneApplication() {
...
//RootFrame = new PhoneApplicationFrame();
RootFrame = new TransitionFrame();
... }
<toolkit:TransitionService.NavigationInTransition>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:SwivelTransition Mode="BackwardIn"/>
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:SwivelTransition Mode="ForwardIn"/>
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
#mstechdays

Code/Développement
Transitions
Utilisation du Windows Phone Toolkit

•
•
•
•
•

Turnstile (mode livre)
Swivel (mode pivot)
Slide
Rotate
Roll

#mstechdays

Code/Développement
Transition manuelle

#mstechdays

Code/Développement
La navigation dans les pages
• Commande de navigation (page)
– NavigationService.Navigate(new Uri(« MainPage.xaml »,
UriKind.Relative));
– NavigationService.GoBack();

•

méthode navigation (page)
– OnNavigatedTo
– OnNavigatingFrom
– OnNavigatedFrom

#mstechdays

Code/Développement
Plan de la navigation d’une page

Pas de navigation

OnNavigatedFrom

Nouvelle page chargée

Commande

#mstechdays

Commande

App

OnNavigatedTo

Système

Code/Développement
Frame
•
•
•
•

Gère la navigation des pages
PhoneApplicationFrame
Les pages sont affichées dans le contrôle
Un contrôle unique dans l’app (2 = plantage)

• Evénements navigation
– Navigating
– Navigated

#mstechdays

Code/Développement
Navigation dans la frame
Navigated

FRAME

Navigating

PAGE

Pas de
navigation

OnNavigating
From

Navigation

Commande

#mstechdays

Nouvelle page

Annulation ?
chargée

OnNavigated
To

Commande

App

OnNavigatedFrom

Système

Code/Développement
Construire sa frame : UserControl + Frame
– UserControl contenant une Frame

– Les + :
• Facile à implémenter
• Template de page
• Animation de fond
• Transition possible
– Les - :
• Problème avec certains contrôles
– Jumplist des LongListSelectors
#mstechdays

Code/Développement
Installation de la nouvelle frame
– Dans App.xaml.cs

• Installation de la Frame : InitializePhoneApplication
– FrameAnimated = new FrameAnimated();
– RootFrame = FrameAnimated.Frame;

• Installation de l’élément visible :
CompleteInitializePhoneApplication
– if (RootVisual != FrameAnimated)
– RootVisual = FrameAnimated;

#mstechdays

Code/Développement
Déroulement de la transition
Navigating
1 – Annulation de la
navigation
2 – Animation de sortie (la
frame est cachée)

Navigated

Nouvelle page chargée
(mais cachée)

1 – Animation d’entrée (la
frame est affichée)

3 –relance de la navigation

#mstechdays

Code/Développement
Démo App de Compatibilité (Part 2)
• Transition

#mstechdays

Code/Développement
Plus loin : Frame Custom Control
– Control héritant de PhoneApplicationFrame
– Les + :
• Même que UserControl
• Possibilité de gérer des animations à deux pages
• Plus de pb de RootVisual
– Les - :
• Plus complexe à mettre en place

#mstechdays

Code/Développement
Démo Frame
• Limbo
• Purple Cherry X

#mstechdays

Code/Développement
Conclusion

#mstechdays

Code/Développement
Questions ?

#mstechdays

Code/Développement
Donnez votre avis !
Depuis votre smartphone sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toutes les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les Techdays !

#mstechdays

Code/Développement
Digital is
business

Contenu connexe

Similaire à Transitions et Animations – Donnez une nouvelle dimension à vos applications Windows Phone !

Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5davrous
 
Les nouveautés d’HTML5 et IE11 en action
Les nouveautés d’HTML5 et IE11 en actionLes nouveautés d’HTML5 et IE11 en action
Les nouveautés d’HTML5 et IE11 en actionMicrosoft
 
Deep Dive WinJS – Profitez à 100% de son potentiel
Deep Dive WinJS – Profitez à 100% de son potentielDeep Dive WinJS – Profitez à 100% de son potentiel
Deep Dive WinJS – Profitez à 100% de son potentielMicrosoft
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Microsoft Technet France
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !davrous
 
Quoi de neuf dans WinJS 2.0 ?
Quoi de neuf dans WinJS 2.0 ?Quoi de neuf dans WinJS 2.0 ?
Quoi de neuf dans WinJS 2.0 ?Microsoft
 
Mise en œuvre d’une démarche DevOps dans Windows Azure
Mise en œuvre d’une démarche DevOps dans Windows AzureMise en œuvre d’une démarche DevOps dans Windows Azure
Mise en œuvre d’une démarche DevOps dans Windows AzureMicrosoft Technet France
 
Meetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureMeetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureSamir Arezki ☁
 
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...Publicis Sapient Engineering
 
SPA avec SignalR et Angular Js
SPA avec SignalR et Angular JsSPA avec SignalR et Angular Js
SPA avec SignalR et Angular JsMicrosoft
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaJulien Chable
 
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...Microsoft Technet France
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 MinutesMicrosoft
 
Vers des applications modernes : retour d'expérience
Vers des applications modernes : retour d'expérienceVers des applications modernes : retour d'expérience
Vers des applications modernes : retour d'expérienceMicrosoft
 
Keynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreKeynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreMicrosoft
 

Similaire à Transitions et Animations – Donnez une nouvelle dimension à vos applications Windows Phone ! (20)

Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5
 
Xamarin + mvvm cross
Xamarin + mvvm crossXamarin + mvvm cross
Xamarin + mvvm cross
 
Les nouveautés d’HTML5 et IE11 en action
Les nouveautés d’HTML5 et IE11 en actionLes nouveautés d’HTML5 et IE11 en action
Les nouveautés d’HTML5 et IE11 en action
 
Deep Dive WinJS – Profitez à 100% de son potentiel
Deep Dive WinJS – Profitez à 100% de son potentielDeep Dive WinJS – Profitez à 100% de son potentiel
Deep Dive WinJS – Profitez à 100% de son potentiel
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !
 
Quoi de neuf dans WinJS 2.0 ?
Quoi de neuf dans WinJS 2.0 ?Quoi de neuf dans WinJS 2.0 ?
Quoi de neuf dans WinJS 2.0 ?
 
Formation mobile-cross-platform
Formation mobile-cross-platformFormation mobile-cross-platform
Formation mobile-cross-platform
 
Mise en œuvre d’une démarche DevOps dans Windows Azure
Mise en œuvre d’une démarche DevOps dans Windows AzureMise en œuvre d’une démarche DevOps dans Windows Azure
Mise en œuvre d’une démarche DevOps dans Windows Azure
 
Meetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureMeetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec Azure
 
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
 
SPA avec SignalR et Angular Js
SPA avec SignalR et Angular JsSPA avec SignalR et Angular Js
SPA avec SignalR et Angular Js
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@Noumea
 
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
 
Silverlight
SilverlightSilverlight
Silverlight
 
Silverlight
SilverlightSilverlight
Silverlight
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 Minutes
 
Vers des applications modernes : retour d'expérience
Vers des applications modernes : retour d'expérienceVers des applications modernes : retour d'expérience
Vers des applications modernes : retour d'expérience
 
Keynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreKeynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle ère
 

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

Transitions et Animations – Donnez une nouvelle dimension à vos applications Windows Phone !

  • 1.
  • 2. Animations et Transitions Donnez une nouvelle dimension à vos applications Windows Phone Samuel Blanchard Windows Phone MVP - Naviso @samoteph Jean-Sébastien Dupuy Technical Evangelist – Microsoft France @dupuyjs Code/Développement
  • 3. Présentation de la session Comment faire une killer app ? • • Données pertinentes Design adapté • Animation ! #mstechdays Code/Développement
  • 4. Agenda • • • • Animations avec XAML Animations par le code Animations par behavior Transitions #mstechdays Code/Développement
  • 5. ANIMATIONS En avant les histoires ! #mstechdays Code/Développement
  • 6. Animation en Xaml Premier pas dans l’animation : déclaration du Storyboard <Border x:Name="LeRectangle" Background="Blue" BorderBrush="White" BorderThickness="2"> <Border.Resources> <Storyboard x:Name="LeStoryboard"> <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="LeRectangle" From="0.0" To="1.0" Duration="0:0:0.500" RepeatBehavior="Forever"/> </Storyboard> </Border.Resources> </Border> #mstechdays Code/Développement
  • 7. Animation en Xaml Premier pas dans l’animation : exécution du Storyboard private void LeBouton_Click(object sender, RoutedEventArgs e) { LeStoryboard.Begin(); } <EventTrigger x:Name="LeTrigger" RoutedEvent="Border.Loaded"> <BeginStoryboard> <Storyboard x:Name="LeStoryboard"> <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="LeRectangle" From="0.0" To="1.0" Duration="0:0:1" RepeatBehavior="Forever"/> </Storyboard> </BeginStoryboard> </EventTrigger> #mstechdays Code/Développement
  • 8. A chaque animation sa solution <DoubleAnimation Storyboard.TargetName="MyAnimatedRectangle" Storyboard.TargetProperty="Opacity« From="1.0" To="0.0" Duration="0:0:5" AutoReverse="True" /> <ColorAnimation BeginTime="00:00:00" Storyboard.TargetName="myStackPanel" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" From="Red" To="Green" Duration="0:0:4" /> <PointAnimation Storyboard.TargetProperty="Center" Storyboard.TargetName="MyAnimatedEllipseGeometry" Duration="0:0:5" From="100,300" To="400,100" RepeatBehavior="Forever" /> #mstechdays Code/Développement
  • 10. Key Frames Version un peu plus avancée : définition d’une séquence <Storyboard x:Name="LeStoryboard"> <ColorAnimationUsingKeyFrames Storyboard.TargetName="LeBackgroundBrush" Storyboard.TargetProperty="Color"> <DiscreteColorKeyFrame KeyTime="0:0:2" Value="BlueViolet"/> <LinearColorKeyFrame KeyTime="0:0:4" Value="Green"/> <LinearColorKeyFrame KeyTime="0:0:6" Value="Yellow"/> </ColorAnimationUsingKeyFrames> </Storyboard> #mstechdays Code/Développement
  • 12. Easing Functions & KeySpline C’est un peu trop linéaire tout ca ? #mstechdays Code/Développement
  • 13. Animation par le Code Ou comment faire compliqué …  … • INDUSTRIALISER ! • • Génération d’un storyboard d’opacité class Storyboard + DoubleAnimation • • Begin et Completed await FadeInAsync #mstechdays Code/Développement
  • 14. Démo App de Compatibilité (Part 1) • Storyboard #mstechdays Code/Développement
  • 15. Tilt Effect … Behavior = étendre le comportement d’un control TiltEffect du Toolkit #mstechdays Code/Développement
  • 17. Transitions Utilisation du Windows Phone Toolkit private void InitializePhoneApplication() { ... //RootFrame = new PhoneApplicationFrame(); RootFrame = new TransitionFrame(); ... } <toolkit:TransitionService.NavigationInTransition> <toolkit:NavigationInTransition> <toolkit:NavigationInTransition.Backward> <toolkit:SwivelTransition Mode="BackwardIn"/> </toolkit:NavigationInTransition.Backward> <toolkit:NavigationInTransition.Forward> <toolkit:SwivelTransition Mode="ForwardIn"/> </toolkit:NavigationInTransition.Forward> </toolkit:NavigationInTransition> </toolkit:TransitionService.NavigationInTransition> #mstechdays Code/Développement
  • 18. Transitions Utilisation du Windows Phone Toolkit • • • • • Turnstile (mode livre) Swivel (mode pivot) Slide Rotate Roll #mstechdays Code/Développement
  • 20. La navigation dans les pages • Commande de navigation (page) – NavigationService.Navigate(new Uri(« MainPage.xaml », UriKind.Relative)); – NavigationService.GoBack(); • méthode navigation (page) – OnNavigatedTo – OnNavigatingFrom – OnNavigatedFrom #mstechdays Code/Développement
  • 21. Plan de la navigation d’une page Pas de navigation OnNavigatedFrom Nouvelle page chargée Commande #mstechdays Commande App OnNavigatedTo Système Code/Développement
  • 22. Frame • • • • Gère la navigation des pages PhoneApplicationFrame Les pages sont affichées dans le contrôle Un contrôle unique dans l’app (2 = plantage) • Evénements navigation – Navigating – Navigated #mstechdays Code/Développement
  • 23. Navigation dans la frame Navigated FRAME Navigating PAGE Pas de navigation OnNavigating From Navigation Commande #mstechdays Nouvelle page Annulation ? chargée OnNavigated To Commande App OnNavigatedFrom Système Code/Développement
  • 24. Construire sa frame : UserControl + Frame – UserControl contenant une Frame – Les + : • Facile à implémenter • Template de page • Animation de fond • Transition possible – Les - : • Problème avec certains contrôles – Jumplist des LongListSelectors #mstechdays Code/Développement
  • 25. Installation de la nouvelle frame – Dans App.xaml.cs • Installation de la Frame : InitializePhoneApplication – FrameAnimated = new FrameAnimated(); – RootFrame = FrameAnimated.Frame; • Installation de l’élément visible : CompleteInitializePhoneApplication – if (RootVisual != FrameAnimated) – RootVisual = FrameAnimated; #mstechdays Code/Développement
  • 26. Déroulement de la transition Navigating 1 – Annulation de la navigation 2 – Animation de sortie (la frame est cachée) Navigated Nouvelle page chargée (mais cachée) 1 – Animation d’entrée (la frame est affichée) 3 –relance de la navigation #mstechdays Code/Développement
  • 27. Démo App de Compatibilité (Part 2) • Transition #mstechdays Code/Développement
  • 28. Plus loin : Frame Custom Control – Control héritant de PhoneApplicationFrame – Les + : • Même que UserControl • Possibilité de gérer des animations à deux pages • Plus de pb de RootVisual – Les - : • Plus complexe à mettre en place #mstechdays Code/Développement
  • 29. Démo Frame • Limbo • Purple Cherry X #mstechdays Code/Développement
  • 32. Donnez votre avis ! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays Code/Développement