Thanks for the article, it certainly works, but needs quite a bit of tweeaking.
The code assumes a control that inherits from an ItemsControl, but if you use a plain ItemsControl, it crashes because ItemsControls don't use virtualization. So you have to conditionailze it for non virtualized ItemControls. Then if you use late binding, the
code crashes the designer because it assumes items to exist in itemssource at load, Also, if you accidently try to use it on an unsupported control, it crashes. So a couple if/return statements makes the code a bit tougher and easier to aviod unexpected errors.
I'm currently modifying it to support other types of "items controls" that don't neccesarily inherit from it. Such as Simply items in a stackpannel.
I also cut the durration of the animations in half, and also cut the distance in half. It looks great for a demonstration, but in practice, that animation is much too long compiled with the already pre-existing pivot animation.