
This post continues our series on the Actipro Themes being added for all our WPF controls in the upcoming 2011.2 version.
In the last post, we looked at the various built-in themes that will ship with Actipro Themes. In today’s post, we’ll peek at the tinting features that are included.
What is Tinting?
Tinting is ability of taking a pre-defined WPF Brush or Pen and creating a clone of the object with color changes to be more like a certain target color.

If you take a brush and tint it towards a gray color, you end up with a grayish brush that has the saturation characteristics of the original brush. The Actipro Themes object model that ships in our Shared Library has a number of helper extension methods that make allow you to tint any Brush or Pen.
Tinting Themes
While you can tint brush and pens individually, it’s much more useful to be able to tint large quantities of brush/pen assets at the same time. Especially when you consider there are over 800 assets in the common asset pool for each built-in theme!
Actipro Themes supports the tinting of any theme or portion of a theme towards a certain color. This means that you can take a built-in theme like the Office Silver theme, and make it a red one instead.
We’ve organized all of the assets in our common asset pool into numerous tint groups. Some example tint group names are ToolBarButton and ToolBarButtonState. Note that we have separated the actual normal button look from the “state” look, which consists of hover, checked, pressed, etc. states. This allows you to tint the core look of the button one way, while tinting the “states” towards another.
There are nearly 100 tint groups defined for the assets in the common asset pool. This granularity allows you fine control for things such as tinting buttons towards one color but lists towards another.
Still for most common scenarios, you want to tint a majority of the theme assets towards a color, and the “state” assets towards another. We’ve got you covered! We’ve wrapped up all our tint groups into tint group sets:
- All – Contains all the tint groups.
- ApplicationMenu – Contains the tint groups related to the Ribbon application button and menu.
- Default – The tint groups for the default look of all controls.
- Hyperlink – The tint groups for hyperlinks.
- State – The tint groups for control “states” such as hover, checked, pressed, etc.
So say we want to tint the Office Blue theme towards green, but leave the “states” orange, and also tint the Ribbon application button/menu towards an Excel-like green. We’d use this code:
1: // Build a color-tinted theme
2: TintedThemeCatalog catalog = new TintedThemeCatalog("Custom",
3: ThemeName.OfficeBlue.ToString(), Color.FromRgb(126, 163, 128));
4: catalog.TintGroups.AddRange(TintGroupSets.ApplicationMenu, Colors.Green);
5: ThemeManager.RegisterThemeCatalog("Custom", catalog);
6:
7: // Apply the theme
8: ThemeManager.CurrentTheme = "Custom";
In a handful of lines, we’ve managed to tint the entire look of our application. Here’s the result of the Ribbon portion:

Summary
In this post we’ve seen the powerful tinting features that Actipro Themes provides. And remember, if you are using our styles/templates for native WPF controls, the tinting will flow into those as well.