How to detect the dark or light theme in Windows Phone 7

If the user of the Windows Phone 7 device switches from the default dark theme to the light theme, how do you detect which one is in use? In the MSDN article Theme Resources for Windows Phone, there are two interesting resource keys that you can query. These are the PhoneDarkThemeVisibility and PhoneLightThemeVisibility keys. So based on these we can determine if we should use a dark or light background image in our application, like so:

Windows Phone 7 Theme Colors

The Windows Phone 7 has two different background color modes; dark or light. In addition, there are ten accent colors to choose from.

image image

There’s currently no simple way of detecting which theme and accent color that the user has selected his or her device. However, since the colors of the current theme is injected into to applications resources, one can at least read out the various colors from there.

The background color can be determined using this piece of code:

And in a similar fashion the foreground and accent colors can be determined like this:

All the various resource names are described here; Theme Resources for Windows Phone.

Theme Background Color Value Foreground Color Value
Dark #FF000000 #FFFFFFFF
Light #FFFFFFFF #DE000000
Accent color Value
02-WP7-purple-accent #FFA200FF
03-WP7-teal-accent #FF00ABA9
04-WP7-lime-accent #FF8CBF26
05-WP7-brown-accent #FFA05000
06-WP7-pink-accent #FFE671B8
07-WP7-orange-accent #FFF09609
08-WP7-blue-accent #FF1BA1E2
09-WP7-red-accent #FFE51400
10-WP7-green-accent #FF339933