This project has moved. For the latest updates, please go here.

Visual State Aggregator

The purpose of the VisualStateAggregator is to allow coordination of transitions between multiple controls without having to involve code-behind or view models.

If you aren't familiar with the Visual State Manager (VSM) it's a powerful way to abstract states and transitions for UI elements away from the actual details of how those states/transitions are done. Jounce provides a mechanism for view models to transition to states. The Visual State Aggregator, however, allows you to trigger a state change using any event (via the VisualStateAggregatorTrigger) and then multiple controls can respond.

A simple example would be two pages you want to transition between. You can set up a region via Region Management as a Grid and target the region with two views. Give each view a view state, then use a trigger attached to your navigation (i.e. maybe it's clicking on a particular button) and bind it to a common event. When the button is clicked on View A, it can fire an event for View A to fade and View B to zoom in. Conversely, when a button is clicked on View B, it can fire an event to View B to zoom out and View A to fade in. All of this can be done entirely in the UI layer. Even the navigation doesn't require anything more than a Navigation Trigger. This is true separation of concerns!

For more comprehensive documentation with a full example, read Introducing the Visual State Aggregator.

Last edited Mar 27, 2011 at 3:00 PM by jeremylikness, version 4


No comments yet.