Theme-aware XAML resources in a WP7 project

Posted by SandRock on Stack Overflow See other posts from Stack Overflow or by SandRock
Published on 2011-01-09T15:06:32Z Indexed on 2011/01/09 15:53 UTC
Read the original article Hit count: 182

Filed under:
|

I'm making a Windows Phone 7 application and I'm a bit confused with dark/light themes.

With a panorama, you very often set a background image. The issue is it's very hard to make a picture which is right for both dark and light themes. How are we supposed to proceed?

Is there a way to force a dark/light theme for a panorama? This will avoid making theme-specific panorama background pictures. Then how do I do? I found xaml files in C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Design. If this is a right way to proceed, how can I import them for my panorama?

Or if there's no way (or if it's wrong) to force a dark/light theme: how to write conditional XAML to set correct resources? Now I have the following XAML which is fine with the dark theme:

<ImageBrush x:Key="PageBackground" ImageSource="Resources/PageBackground.png" Stretch="None" />
<ImageBrush x:Key="PanoramaBackground" ImageSource="Resources/PanoramaBackground.png" Stretch="None" />

But when I use a light theme, black controls and black texts are hard to read with my dark background pictures. So I made different pictures that I can use this way:

<ImageBrush x:Key="PageBackground" ImageSource="Resources/PageBackgroundLight.png" Stretch="None" />
<ImageBrush x:Key="PanoramaBackground" ImageSource="Resources/PanoramaBackgroundLight.png" Stretch="None" />

Now my issue is to make XAML conditionnal to declare the right thing depending on the current theme.

I found no relevant way on the Internet. I would prefer not to use code or code-behind for that because I believe XAML is able to do this (I just don't know how).

© Stack Overflow or respective owner

Related posts about xaml

Related posts about windows-phone-7