Here's a little deeper rundown on the new features in the Layout Mix (May CTP Release).
The Layout mix now includes full support for enter and exit animations when children are added to or removed from an animation panel. The March CTP had a number of hooks for the enter and exit animations, but they were not yet implemented. These new animations are in addition to the existing support for layout animations and switch animations (which come into play when the panel is used within the Layouts collection of a SwitchPanel).
The May CTP also introduces a couple of new animation panels: Carousel and Grid. Like all animation panels, these new panels can be used as layouts within a SwitchPanel or they can serve as standalone panels.
The new Grid panel behaves just like the native WPF Grid but it adds all of the goodness that is provided by the AnimationPanel base class. This includes animated repositioning of the grid's children and support for enter and exit animations when children are added or removed from the panel.
The new Carousel panel is a 2D panel that arranges its children in an elliptical layout. By default, the panel will scale its children and set their z-index values to create a 2D layout that has the appearance of a 3D carousel. For greater control, you may opt out of this automatic scaling and ordering behavior and control the scale and z-indices via bindings to attached properties on the children. Here is a sample demonstrating how the Carousel panel can be used as an items host for a ListBox.
Finally, the May CTP introduces a new "SwitchTemplate" concept to augment the SwitchPanel class. Just to recap the purpose of SwitchPanel a bit... SwitchPanel is all about layout-to-layout animations in WPF. The active layout of a SwitchPanel can be set to any AnimationPanel. Transitions between layouts are animated using an iterative animator that can be specified on the SwitchPresenter or on individual animation panels within the Layouts collection.
The animator that is used to perform switch animations (or for enter, exit, or layout animations in an animation panel) can be a custom class that provides frame-based or time-based updates. It can also be any one of the included animators that ship as part of the Blendables library. These existing animators are built upon the Penner animation equations.
Using the new SwitchTemplate concept that is introduced in the May CTP, you can now place SwitchPresenter elements anywhere within the element subtree of a SwitchPanel. When the active layout of the owning SwitchPanel changes, the template of the SwitchPresenter elements will automatically be updated to the SwitchTemplate associated with the new layout. Not only will this result in a template change, but any items within the new template that can be mapped to items within the old template (because they share the same SwitchTemplate.ID attached property value) will automatically animate to their new positions. This subelement animation will occur using the same animator that is used for switch animations in the SwitchPanel.
Stay tuned for samples demonstrating all of these cool new features. We look forward to hearing your feedback!
Cheers!
-Jonathan