Eine schöne Funktion von WPF ist die Möglichkeit Themes zu verwenden. Neben Themes aus dem Internet gibt es bereits zahlreiche eingebaute Themes.
Diese sind im Wesentlichen den unterschiedlichen Betriebssystem geschuldet auf denen WPF laufen soll. Unter Windows 7 soll eine WPF-Anwendung aussehen wie eine Windows 7 Anwendung, unter Windows 10 wie eine Windows 10 Anwendung. Schauen wir uns an, wie wir das Thema wechseln können. Das Projekt gibt es am Ende zum Download.
Normal wird das passende Theme automatisch ausgewählt. Unter Windows 10 sieht die Beispielanwendung so aus:
Soweit nichts besonderes. Um weitere Themes zu aktivieren, müssen wir diese als Referenz hinzufügen:
Unter „Assemblies“ suchen wir nach „Presentation“ und finden die verschiedenen Assemblies. Im Beispiel füge ich alle hinzu, ansonsten reicht das Assembly mit dem passenden Theme.
Um ein Theme beim Start der Anwendung zu setzen fügen wir eine Passage an Code in die Application.Resources
-Sektion in der „App.xaml“ hinzu.
<Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/luna.homestead.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources>
Im Beispiel wir ein Luna-Theme gesetzt. Nun starten wir die Anwendung und die Anwendung sollte nun im guten alten Windows XP Look daher kommen. Es gibt noch zahlreiche weitere Themes. Dies erlaubt uns nicht nur das Look & Feel von Windows XP unter Windows 10 wieder zu beleben, auch unter Windows 7 kann man Anwendungen im modernen Windows 10 Look darstellen.
Aero Theme
Das Aero-Thema ist das Windows 7 Theme:
<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
Aero2 Theme
Das flache Design ab Windows 8:
<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
Aero Lite
Ebenfalls ein flaches Design im Windows 10 Stil.
<ResourceDictionary Source="/PresentationFramework.Aerolite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/aerolite.normalcolor.xaml" />
Luna Themes
Das Luna Thema erinnert an das gute alte Windows XP und kommt in verschiedenen Geschmacksrichtungen.
Luna Normal Thema
<ResourceDictionary Source="/PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/luna.normalcolor.xaml" />
Luna Metallic Thema
<ResourceDictionary Source="/PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/luna.metallic.xaml" />
Luna Homestead Thema
Das Homestead-Thema kommt mit einem klassischen Grünstich daher:
<ResourceDictionary Source="/PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/luna.homestead.xaml" />
Royale Thema
Aus der Richtung Windows XP artige Designs:
<ResourceDictionary Source="/PresentationFramework.Royale, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/royale.normalcolor.xaml" />
Classic Theme
Wer Windows 2000 mag, wird mit dem Classic-Theme glücklich:
<ResourceDictionary Source="/PresentationFramework.Classic, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/classic.xaml" />