Themes for WPF applications

I really really don't know how this one fell through the "sneak peek" cracks for DXperience v2009.2. We weren't actively trying to hide it, but possibly it's because we were waiting for our graphics artist Mike to complete the design work when suddenly the release was upon us and we all had collective amnesia.

The news is in two parts. First the good news, and then, in a break with tradition, the even better news.

The Good News

DXperience WPF ships with three new visual themes: Office 2007 Blue, Office 2007 Black, and Office 2007 Silver. Here's the blue theme in action in a demo:

Office 2007 Blue theme for WPF

The theme is applied to all of DevExpress' WPF controls.

The Even Better News

Ready? The new themes work on standard WPF controls as well.

Please, go back and reread that sentence again until it's sunk in. I'll wait.

Let's be more specific: With v2009 vol 2, any DevExpress visual theme for WPF can be applied to the standard WPF controls by simply specifying the theme name for a control or for its parent element.

No longer do you have to apply custom templates to the standard WPF controls (and fiddle around with them) to get the visual consistency you need across the whole application you built with our controls. We did it for you. We support the standard GroupBox, ScrollViewer, Scroll, RadioButton, Button, ListBox, Slider, TabControl, Separator, ToggleButton, RepeatButton, Label, ListBoxItem, TabItem, and ToolTip controls with this theme engine.

As a brief example, here's the Customization Window for a toolbar shown with a couple of different themes. The controls in this window are standard WPF controls.

First, in Office 2007 Black:

Black Customization Window

And then in Office 2007 Blue:

Blue Customization Window

Notice in particular the differences in the form, the tabbed items, and the button.

So, next time you need visual consistency and support for different themes in your WPF application, it's a one-stop shop: DevExpress and DXperience WPF.

10 comment(s)

Julian,

This is awesome! What I'd still love to see though is letting the DX controls take on a themeless look so I can make my own stuff in Expression Design/Blend.

26 August, 2009

Julian,

Absolutely brilliant.

I have liked your products for a while but I must say that v2009.2 so far seems to hold more improvements than I would have expected!

Bruno

26 August, 2009

Impressive stuff and a very solid "value add" too!

27 August, 2009

Great

But how do I activate this?  I don't seem to get it working.

kind regards

28 August, 2009
Olaf

Hi,

is there a "simple" sample, which shows how one can switch between those themes?

Or is there a "simple" sample which uses one of those thmes?

Thx

28 August, 2009

Thanks for the update, Julian - great stuff!

Can you share any info on when DXGrid (and maybe your WPF controls in general) will support the standard Windows themes (Aero, Classic, Luna and Royale themes and their various variations)? All of these are supported by the MS built-in controls that ship as part of WPF. Essentially equivalent to the "UseXPStyle" mode of XtraGrid on WinForms.

In my opinion, not being able to use DXGrid out-of-box in an app designed to use the default current visual theme of the OS is a major obstacle. Certainly for me, it means I cannot make use of DXGrid in most of the applications I build.

30 August, 2009

How do I disable this behavior? I don't want standard WPF controls to be styled with DevEx styles.

31 August, 2009

Great to see new theme's but a "lookless" vanilla version seems to be missing. Would be great to be able to use the DevEx controls so they matched the standard MS WPF control appearance straight out of the box.

I'm also struggling to find code examples of how to use the new themes.

1 September, 2009
Joe

To set the theme, set dxc:ThemeManager.ThemeName="Theme Name", where "Theme Name" is "Azure", "Office2007Blue", "Office2007Black", or "Office2007Silver", on a control. The "dxc" namespace reference refers to the namespace "schemas.devexpress.com/.../core". When you set a control, all controls inside the control's hierarchy will get the same theme unless you set ThemeManager.ThemeName to a different theme.

Setting the ThemeName to an empty string or null doesn't appear to turn off the theme, however, so I'm not sure how to disable the theme for a specific control.

4 September, 2009
masoud

Very good

1 December, 2009

Please login or register to post comments.