Vandaag, toen ik een WPF-programma gebruikte dat ik eerder onder Win8 had geschreven, ontdekte ik dat Win8-effecten nu worden ondersteund (onthoud dat de vorige versie van .NET 4.0 niet werd ondersteund). Aangezien de besturing van WPF zelf is getekend en niet wordt aangestuurd door het systeemthema, dat wil zeggen, .NET 4.5 wordt geleverd met Win8-themastijlbestanden, en het is logisch dat deze stijl ook onder Win7 gebruikt kan worden.
Ik zet . Verschillende onderwerppaden die onder Net 4.5 worden ondersteund, worden als volgt geëxtraheerd:
Win8(AeroLite): /PresentationFramework.AeroLite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; component/themes/aerolite.normalcolor.xaml Win7 (Aero): /PresentationFramework.Aero, versie=4.0.0.0, cultuur=neutraal, PublicKeyToken=31bf3856ad364e35; component/themes/aero.normalcolor.xaml WinXP Royale: /PresentationFramework.Royale, versie=4.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35; component/themes/royale.normalcolor.xaml WinXP Blue (Luna): /PresentationFramework.Luna, version=4.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35; component/themes/luna.normalcolor.xaml WinXP Silver (Luna): /PresentationFramework.Luna, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; component/themes/luna.metallic.xaml WinXP Luna: /PresentationFramework.Luna, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; component/thema's /luna.homestead.xaml Win98(Classic): /PresentationFramework. Classic, Version=4.0.0.0, Culture=neutraal, PublicKeyToken=31bf3856ad364e35; component/thema's /classic.xaml Opmerking: ik neem de . Net 4.5-stijl bestandspad, andere paden. Het pad van de Net-versie kan iets anders zijn, maar het komt eigenlijk naar voren als je ILSpy gebruikt om het te zien.
Met deze stijlpaden kun je de globale stijl bij het opstarten toepassen om het AeroLite-effect van Win8 in Win7 te renderen:
- protected override void OnStartup(StartupEventArgs e)
- {
- var uri = new Uri("/PresentationFramework.AeroLite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/AeroLite.NormalColor.xaml", UriKind.Relative);
- App.Current.Resources.Source = uri;
- base.OnStartup(e);
- }
Code kopiëren
|