It seems that for WPF applications run in desktop mode of Windows 8 Release Preview Microsoft has decided to default the runtime theme to Classic, even when the selected Windows theme from Control Panel is from the Aero group (such as the default theme).
For example, if you have a custom toggle button styled for multiple themes, looking like a triangle in Aero and Generic themes, but as a plus/minus sign in Classic and Luna themes, Windows 8 Release Preview will load the latter one when you run an application that uses that button!
Therefore, a developer of a multi-themed WPF application or control library has only a few options to make the output look good on Windows 8, provided that this behavior will be maintained until the final release:
- Manually load a specific WPF theme dictionary (such as Aero) when running on Windows 8, unfortunately requiring Windows version checking code and “ugly” code to force using a specific theme dictionary instead of the default;
- Remove the Classic theme completely from your application or library; WPF core will then probably default to Generic theme instead, as specified in documentation, but this is a problem for Windows XP, Vista, and 7 users that use the classic theme instead of Luna and Aero.
Microsoft may accept this as an issue, and resolve it by the time Windows 8 launches, (e.g. the default WPF theme could be either Aero or at least Generic), but personally, I wouldn’t count on that: it seems Microsoft is concerned more about their Metro style platform – and maybe they should – and they may have decided to consider the Desktop mode as a Classic theme “by design” already)…