Täna, kui kasutasin WPF programmi, mille varem Win8 all kirjutasin, avastasin, et Win8 efekte toetatakse nüüd (pidage meeles, et eelmist .NET 4.0 versiooni ei toetatud). Kuna WPF juhtimine on ise joonistatud ega ole süsteemiteema poolt juhitav, siis .NET 4.5 sisaldab Win8 teema stiilis faile ning on loogiline, et seda stiili saab kasutada ka Win7 all.
Ma panin . Mitmed Net 4.5 toetatud teemateed on välja võetud järgmiselt:
Win8(AeroLite): /PresentationFramework.AeroLite, versioon=4.0.0.0, kultuur=neutraalne, PublicKeyToken=31bf3856ad364e35; component/themes/aerolite.normalcolor.xaml Win7 (Aero): /PresentationFramework.Aero, Version=4.0.0.0, Culture=neutraalne, PublicKeyToken=31bf3856ad364e35; component/themes/aero.normalcolor.xaml WinXP Royale: /PresentationFramework.Royale, versioon=4.0.0.0, kultuur=neutraalne, PublicKeyToken=31bf3856ad364e35; component/themes/royale.normalcolor.xaml WinXP Blue (Luna): /PresentationFramework.Luna, versioon=4.0.0.0, kultuur=neutraalne, PublicKeyToken=31bf3856ad364e35; component/themes/luna.normalcolor.xaml WinXP Silver (Luna): /PresentationFramework.Luna, versioon=4.0.0.0, kultuur=neutraalne, PublicKeyToken=31bf3856ad364e35; component/themes/luna.metallic.xaml WinXP Luna: /PresentationFramework.Luna, versioon=4.0.0.0, kultuur=neutraalne, PublicKeyToken=31bf3856ad364e35; komponent/teemad /luna.homestead.xaml Win98 (Classic): /PresentationFramework. Classic, Version=4.0.0.0, Culture=neutraalne, PublicKeyToken=31bf3856ad364e35; komponent/teemad /classic.xaml Märkus: Ma võtan . Net 4.5 stiilis failitee, teised. Neti versiooni tee võib olla veidi erinev, kuid see tuleb välja siis, kui kasutad ILSpyt selle nägemiseks.
Nende stiiliradadega saad rakendada globaalset stiili käivitamisel, et renderdada Win8 AeroLite efekti Win7-s:
- 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);
- }
Kopeeri kood
|