He has a right to criticize, who has a heart to help [Two fixes for DynamicOrientationChanges improve the experience of animating and fading Windows Phone orientation changes]

This blog has moved to a new location and comments have been disabled.

All old posts, new posts, and comments can be found on The blog of dlaa.me.

See you there!

Comments (2)
  1. Hey David,

    Great stuff. Do you see any way to select the transition on a "per-page" basis? I am not sure it would be a good experience anyway, since consistency is probably the best approach, but just curious…



  2. David Anson says:

    Laurent Bugnion,


    I agree that maintaining a consistent user experience is probably best – but sometimes it's also good to be different. 🙂 The easiest way to customize things on a per-page basis would probably be to handle the OnNavigatingTo/From events and set the existing IsAnimationEnabled property to true or false depending on whether you wanted a transition. I'm not sure the timing of all the events would work out right here, but it seems like it should.

    However, that would just turn off the rotation/fade sometimes and I bet you want to be able to use a different transition for each page… For that to work with my current approach would probably involve merging the Animate and Fade classes together into one class that could do both – and then setting some property on that class to tell it what the next transition should be. I think this should be possible, but if there are too many more transitions you have in mind, the complexity of merging them all could become troublesome.

    Unfortunately, the current model (for Animate, at least, I'm less sure about Fade) requires subclassing PageApplicationFrame and I don't believe it's possible to change Frames once the app is running (though I've not specifically tried it…), so swapping things in and out seems like it wouldn't be an option.

    I'll think about this some more and let you know if I have any brilliant-seeming ideas… 🙂

Comments are closed.

Skip to main content