This week I decided to review some of the commercial available WPF controls. The first set of controls I wanted to review was the Blendables Essential Mix available from IdentityMine. The blendables package has 10 controls and cost $395. Here are some of the controls I loved:
Control: DragAndDrop
The first "control" I evaluated was the DragAndDrop attached properties. I have to admit that this had me hooked! This added full drag & drop support to any ItemsControl with only 1 line of code.
How it works
To enable dragging on a ItemsControl just add the following to the controls definition
|
<ListBox Name="myListBox" blendables:DragAndDrop.Enabled="True" /> |
Well, that was easy enough! This also works on ListView, TreeView, etc. Next, we need to enable dropping inside a ListBox. New controls are defined here: DragAndDropListBox, DragAndDropListView and DragAndDropTreeView. Just add any 1 of these and you can now drop your items in them. Except for adding the dropping functionality, thy function exactly as their normal WPF equivalents would!
|
<blendables:DragAndDropListBox Name="myListBox2" /> |
What I didn't like
Nothing... Works great!!!
Can I get this for free
Pavan's blog has an excellent 4 part article on how to get started... Just know that this is not easy!!!
Part 1
Part 2
Part 3
Part 4
It's also worth mentioning Josh Smith's CodeProject article about drag & drop available here
Control: TimelinePanel
This in my opinion is a very cool control. Fundamental to WPF is the concept where content can be organized based on the layout panel that it gets added too. By default WPF ships with Grid, DockPanel, StackPanel, WrapPanel, ect. but it is possible to create your own. TimelinePanel emphasize the chronological nature of your data.
How it works
First you add the TimelinePanel to your visual tree and set the BeginDate and EndDate
|
<blendables:TimelinePanel BeginDate="01/01/2007" EndDate="12/31/2007"> |
Next, start adding your content
|
<Image Width="300" blendables:TimelinePanel.Date="02/15/2007" Source="C:\Picture001.jpg" />
<Image Width="300" blendables:TimelinePanel.Date="10/01/2007" Source="C:\Picture002.jpg" /> |
And set its date by using attached properties...
What I didn't like
Again, NOTHING!!! Very cool layout panel
Can I get this for free
Read Charles Petzold's book Application = Code + Markup. It has a whole chapter about this... He also creates a new layout panel called a RadialPanel. There are also loads of resources available on the internet!!! Also read up on UI virtualizing...
Control: ChromelessWindow
ChromelessWindow is a very cool utility class which easily adds glass effect, dragging and resizing to custom branded windows again using attached properties!!!
How it works
To make a normal window chromeless, just add the following to your window definition
|
AllowsTransparency="True"
WindowStyle="None" |
This is still standard WPF stuff... Things to note here are that you cannot resize or move this window anymore!!! To make it draggable, add the following
|
blendables:ChromelessWindow.IsWindowDragHandle="True" |
To make it resizable, add the following
|
blendables:ChromelessWindow.ResizeBorderThickness="5 5 5 5" |
You can even change the corner radius of the window
|
blendables:ChromelessWindow.RadiusX="5"
blendables:ChromelessWindow.RadiusY="5" |
This is still all available in Vista or XP. Next, let's add glass effect to our window. This is only available in Vista and Aero them must be enabled
|
blendables:ChromelessWindow.IsGlassEffectEnabled="True" |
Also play around with the GlassBorderThickness, IsGlassColorEnabled, GlassColor and IsGlassTransparencyEnabled to change the appearance of the glass effect!
What I didn't like
I was a little disappointed with this. The ResizeBorderThickness seems a little buggy and sometimes they talk about IsWindowDragHandle and other times they talk about IsWindowDragEnabled. Also If you run the mixer demo it creates the illusion that it is easy to add the minimize, maximize and close buttons to a chromeless window... well, you have to create those yourself!
On the up side, I was very impressed with the adding of the dragging of the window!!!
Can I get it for free
Adam Nathan has a blog entry about how to enable the glass effect available here
[UPDATE] Here is a CodeProject article on how to enable the Glass Effect using attached properties!
To add dragging and resizing to chromeless windows is a little more difficult thou...
[UPDATE] While browsing I found a nice article on Lee's website on how to enable dragging of chromeless windows...
What else is available
Carousel3D, Pie and Zoombox controls are also worth looking at. Blendables also includes EvalBinding, SimpleBinding, NumericRangeToObjectConverter and OSChecker!
Where can I get it
http://www.blendables.com/products/products.aspx
Final thoughts
I have to end this review by saying that in general I liked most of the controls in Blendables! I can definitely see myself using some of these controls in the future... would I pay almost $400 for it? The jury is still out on that one! If you want to know more about Blendables, download the evaluation version and run the Blendables Mixer application or download Tangerine... Most of the controls are demonstrated in these applications...
Next on my review list is NetAdvantage for WPF by Infragestics so check back soon...