When developing for Windows Phone 7 and 8, the operating system API provides access to lots of interesting features. One feature lets the application get the selected theme color that the user has selected. This is not available to Windows Store apps because, well because the notion of a theme seems to be missing.

The theme concept is not missing from the operating system, Go change the colors of the Start Screen and you will see that there is a theme, and it does have colors. Rather, many programmers seem to think that there are no theme colors in Windows 8.

But they are wrong. Yes, those guys on blogs and forums who make comments like “there is no such thing as a theme color in Windows 8.” are just not paying any attention. Or they are lazy.

Just write a simple app and use the Windows.UI.Popups.MessageDialog class, and you will see the theme color in action. Make sure that there is at least one button. Take a close look at it and tell me that it is some arbitrary color. Mine matches the color that I selected for my Start Screen. I’m not sure if it’s the foreground or background color of the Start Screen, but it’s certainly red when I pick red-on-red for my Start Screen colors.

So why is it that Microsoft would imply that there is no theme color, let so many people believe that, not give access to that color, and then let you use it when you create a MessageDialog object with a button?

For now, I am discarding the MessageDialog class and writing my own replacement. It’s the only way to have message boxes have the same look and feel as other popups that I display.

image

Windows 8.1 Personalization

And I just found this. Apparently, Microsoft has decided to fix another Windows 8 failure:

{ThemeResource} and run-time resource evaluation on theme switching is supported in Windows 8.1 Preview XAML but not supported in XAML for apps targeting Windows 8.

I wonder how things will work if I were to use this in a Windows 8.1 app and then have someone try to run it on  Windows 8.0.