Kevin Moore very quietly released a new bag o’ tricks that has two of the coolest controls for WPF that I’ve seen in awhile: transition and reveal. 

Transition is gnarly: it provides the infrastructure to create a visual transition between any two visuals in WPF.  These visuals could be controls, vector graphics, images, 3D or, really,  anything.  What is nice is that the architecture of the control is extensible, such that you can define a new transition quite easily.  There are a bunch of built in transitions, both 2D and 3D. Many of the 2D transitions are modeled after the stock transitions available in Windows Movie Maker.  (Some, like Rotate Wipe, remind me of the transitions in Star Wars, A New Hope.)  The 3D ones are quite nice and include cloth, page, doors and explode.

Reveal is also quite powerful.  Rather than a transition, it provides animation to reveal something — anything — in WPF.  This isn’t just an opacity fade but rather a directional unveiling. For example, when clicking a treeview item, imagine the item animating in view instead of just appearing. 

Both of these controls are the kind of control that allows for people to write “better” UI, in the sense of UI that doesn’t just slap the user around, but gracefully moves the user from state to state. Reminds me of the tagline that has been used in association with WPF: “build the UI of your dreams.”

With the importance of using custom controls to create beautiful UI in mind, I implemented these controls in a new version of the Avalon Feature Fest.  You can run it here (beware it is a 16mb download because of the video.) and download the source here. It is a great overview of WPF when giving a presentation and trying to explain what, in fact, WPF is.  As such, I added a new section called Custom Controls, where I show off Transition, Reveal and Zap Scroller.  The point being: WPF allows you to build incredibly powerful control above and beyond the controls “in the box”.  The other point: other people are starting to build these controls and the ecosystem will start to thrive with great controls.  In fact, at MIX, there were a number of companies announcing just that.  And, knowing Kevin, expect more goodies to continue to end up in his bag o’ tricks.

Here’s some screenshots from the transition control of good old limecat in the middle of a 3D cloth transition:

Comments (8)

  1. Axel says:


    Thank you for the sample, but it appears that it does not compile, two dependencies are missing (Reveal and WPFSamplesLib)



  2. karstenj says:

    Doh!  Thanks, Axel.  I just reposted the code and included the WPFSamplesLib project, which also has the Reveal project.

  3. What the hell were you doing to that poor cat?

  4. karstenj says:

    No cats were harmed in the making of this demo. 🙂

  5. Axel says:

    Thank you for updating the project. The WPSSamplesLib project is now referenced in the solution, but the actual code is still missing from the zip file 🙂



  6. karstenj says:

    Axel: thanks for your patience through my blunders.  Third time’s a charm; project source should now be included.

  7. Josh J. says:

    Hi, is there a pre-compiled app that I can use to easily see these effects?