Donnerstag, 6. Juni 2013

WPF Themes

Warum sieht eigentlich eine WPF Anwendung unter Windows XP anders aus als unter Windows 7 oder einer anderen Windows Version?

WPF macht sich dem System Theme zu nutze, um seine Standard Controls der Windows Umgebung anzupassen. Stellt man unter Windows 7 den System Theme auf "Windows klassisch", so besitzt das Window der eigenen Anwendung wieder den Rahmen, den man noch aus Windows XP Zeiten kennt.

Schreibt man ein eigenes Control, so sollte man sich überlegen, ob es sinnvoll ist, den verschiedenen Themes auch ein unterschiedliches Layout zu geben. Möchte man lediglich ein Design für alle Themes haben, so muss nur in der Generic.xaml Datei im Themes Verzeichnis ein ControlTemplate angelegt werden. Sollen auch andere Themes unterstützt werden, so können zum Beispiel die Datei Themes/Aero.NormalColor.xaml für den Standard Windows 7 Theme oder Themes/Classic.xaml für den klassischen Theme angelegt werden.

Hinweis: Das ThemeInfoAttribute Attribut darf natürlich nicht fehlen, wenn man ein eigenes Control in WPF schreibt!