My Headlines

Monday, May 14, 2007

Still Sorting through all the Mix 07 Material

by Don Burnett

Post Mix Craziness

I have to admit that when I got back from Mix, I figured I would have a very daunting task ahead of me and I have. Besides all the things I learned in sessions, Microsoft supplied a whole bunch more material on CD/DVD and I have been combing through that with every given moment. I am here to report that I am still on Mix overload. With the announcement of Silverlight a lot of what's going on with WPF is kinda going unnoticed. Well I am here to try to right that wrong tonight by talking about one of the coolest things I have seen done with WPF so far.

Okay some of you might not know this but yes I am a comic book fan. No I don't go to comic conventions but I still pickup my monthly stash of favorite DC Comics every month (always a little behind), but IdentityMine has came up with a way to make comics more exciting and even updatable online. They showed this off to a very excited audienced that can only be described as JAW DROPPING comic fans. They shown what is possibly the first truly interactive comic book with animation. I think the whole thing is a big winner and I can't wait until I can read Wonder Woman, Batman and Superman in this format.

Even more exciting is the mechanisms that were used to create this experience are now available for use in your own Expression Blend  projects. They are called Blendables and they are custom controls that work with both Expression Blend and Visual Studio.. Just what's so important about these that saves you time over trying to create these controls yourself? Well they are for one very polished and easy to work with. Also, IndentityMine being the great design/developer resource they are really know what you guys are wanting for use in Blend.

If you want to see them yourself, they are now available in a Community Technical Preview which you can download at www.blendables.com. One of my favorites is something called the Timeline Panel. Recently in part One of my tutorial of creating a Twitter application in WPF I noted that since everything in Twitter happens according to a timeline, a Timeline type control would be something I was creating for part two. Well I think IndentityMine heard my prayers answered with Blendables and now for part two of the tutorial I probably will just use their control as it does everything I was looking to do with it. It also makes part two of the tutorial 100% easier to come up with for you folks.

Thank you IndentityMine for creating some very useful controls. I will be adding the to my repetoire as soon as they are publicly available for sale..

Here's a list of all the controls and what they do..

CTP Controls

Zoombox

Great for apps that have schematics, maps and other content that benefit from zooming and panning functionality.  The Zoombox control allows content to be panned in any direction or zoomed in or out using the mouse, keyboard, or programmatically through methods and properties exposed by the control.  It allows the user to track their location using a viewfinder containing a scaled down map of the content.  Optionally, the user can retrace their steps through old views using Back and Forward navigation.

 

ElementSnapshot

Say Cheese!  ElementSnapshot is a control that allows rendering any FrameworkElement into the Visual Tree without it actually being in the Visual Tree itself.  The primary scenario is to enable the use of bitmap effects within an application without the performance degradation that is incurred when a bitmap effect is in the Visual Tree. The control also supports an IsLive mode for when FrameworkElement is needed in the Visual Tree.

 

Carousel3D

Moving into 3D and missing the good old ItemsControl?  Carousel3D provides ItemsControl like functionality in 3D.  Items in the Carousel3D are positioned in a configurable elliptical layout and full collection change support is included in Carousel3D.  When your underlying items source changes so does the Carousel3D, just as you would get from the 2D ItemsControl, with one advantage: all changes are smoothly animated in 3D!  Additionally, Carousel3D exposes multiple properties to give you great control over all its animation.

 

ChromelessWindow

Create custom branded window experiences!  ChromelessWindow is a utility class which can be used to give Glass effect on a window, resize the window, and drag and move the window.  The resize utility will redefine the way a typical window resize happens on a WPF window. This utility also provides a draggable functionality to a window using XAML code since there is no default draggable behavior associated with a chromeless window.

 

DragAndDrop

DragAndDrop allows WPF ItemsControls to support drag and drop via attached properties.  The goal is to allow the designer to support the drag and drop metaphor easily via a single line of XAML code.  It uses an adorner to show a visual of the item being dragged and automatically uses the data object to move or copy items.

Pie

A little treat for creating charts and radial based controls like speedometers and gauges.  The Pie shape is a WPF shape that represents a portion of an ellipse, often in the shape of a slice of pie.  More specifically, the Pie shape consists of an arc of an ellipse whose endpoints are joined to the center of the ellipse by two line segments.

 

OSChecker

Simple, but a great time saver for anyone creating applications targeted at multiple OS’s.  OS Checker is a control that exposes the current OS version as a DependencyProperty that can be easily used in any number of scenarios such as triggers in styles and templates.

 

TimelinePanel

Time for a new perspective in the way you present your data?  Extend WPF’s rich data visualization capabilities by arranging your data or UI elements along a timeline!  TimelinePanel makes it easy to create compelling data visualizations that emphasize the chronological nature of a data set.  Simply drop it into any application, set a handful of properties and watch as elements get arranged in time and space!

 

EvalBinding and SimpleBinding

These make binding even more powerful and easy....how is that possible?  The EvalBinding class provides a XAML markup extension for establishing bindings that include code expressions.  This allows a WPF dependency property to be dynamically bound to a code expression that is dependent upon zero or more other properties.  A change in any of these properties causes the expression to be reevaluated. 
The EvalBinding extension is built upon another markup extension called a SimpleBinding.  A SimpleBinding encapsulates a native WPF Binding using a simplified, compact syntax.  It can be used anywhere that a native Binding can be used.  In addition to the simplified syntax, it provides intelligent type conversion, often eliminating the need for custom value converters.

 

NumericRangeToObjectConverter

Ever wanted to trigger values based on a range?  Create complex template solutions with ease, change your app’s style based on the time of day or even the weather outside. NumericRangeToObjectConverter is an IValueConverter implementation that allows creation of a converter that will return an object for a configurable range of numeric values.

2 comments:

Unknown said...

Don,
Thanks for your enthusiasm on Blendables. We'd like to get more feedback on what you think and would loved to be involved in v2 of your Twitter app. Drop me an email at kurt.brockett@identitymine.com and we can setup a time to talk with the team.

Kurt
Director of Product Management - IdentityMine, Inc.

Chad Brown said...

Hi Don, thanks for the mention! I'm very glad that you're finding our controls to be useful and relevant. Your post inspired me to document some of my thoughts around "innovation out of need".