I'm using the silverlight toolkit animation in all my pages. It works fine in classic page, panorama page and when closing a pivot.
But when I'm navigating to a pivot control, I often find that the animation doesn't start at all, especially on an average device (like the HTC Trophy). It's a better on a good phone (like the Lumia 800), but the animation does not trigger every time.
Is there a known bug with the pivot control that delays the initialization and causes the animation to be cancelled ? I can't understand why the animation is so erratic, and why it works from time to time. In the People app, for example, when you click on a contact, the pivot always shows the animation. I would like to be able to reproduce this behavior.
FYI, I put this code in the xaml files :
<toolkit:TransitionService.NavigationInTransition>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:TurnstileTransition
Mode="BackwardIn" />
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:TurnstileTransition
Mode="ForwardIn" />
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
<toolkit:TransitionService.NavigationOutTransition>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:TurnstileTransition
Mode="BackwardOut" />
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:TurnstileTransition
Mode="ForwardOut" />
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</toolkit:TransitionService.NavigationOutTransition>
Any clue would help. Thanks.
Probably the loading of the page is too slow, I would start by profiling and see what takes the most time to execute and check the memory usage.
Some tricks I use when the animation doesn't show up:
And finally set the background of the transition frame to transparent in App.xaml.cs (too reduce the fill rate):
RootFrame = new TransitionFrame() { Background = new SolidColorBrush(Colors.Transparent) };