Tänään, kun käytin aiemmin Win8:lla kirjoittamaani WPF-ohjelmaa, huomasin, että Win8-efektejä tuetaan nyt (muista, että aiempi .NET 4.0 -versio ei ollut tuettu). Koska WPF:n ohjaus on itse piirretty eikä järjestelmäteema ohjaa niitä, eli .NET 4.5 sisältää Win8-teematyylisiä tiedostoja, ja on loogista, että tätä tyyliä voi käyttää myös Win7:ssä.
Laitoin . Useita Net 4.5:n tukemia aihepolkuja on poimittu seuraavasti:
Win8(AeroLite): /PresentationFramework.AeroLite, versio=4.0.0.0, kulttuuri=neutraali, PublicKeyToken=31bf3856ad364e35; component/themes/aerolite.normalcolor.xaml Win7 (aero): /PresentationFramework.Aero, versio=4.0.0.0, kulttuuri=neutraali, PublicKeyToken=31bf3856ad364e35; component/themes/aero.normalcolor.xaml WinXP Royale: /PresentationFramework.Royale, version=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, versio=4.0.0.0, Culture=neutraali, PublicKeyToken=31bf3856ad364e35; component/themes/luna.metallic.xaml WinXP Luna: /PresentationFramework.Luna, versio=4.0.0.0, kulttuuri=neutraali, PublicKeyToken=31bf3856ad364e35; komponentti/teemat /luna.homestead.xaml Win98(Classic): /PresentationFramework. Classic, Version=4.0.0.0, Culture=neutraali, PublicKeyToken=31bf3856ad364e35; komponentti/teemat /classic.xaml Huomautus: Otan . Net 4.5 -tyylinen tiedostopolku, muita. Net-version polku voi olla hieman erilainen, mutta se tulee esiin, kun käytät ILSpyä nähdäksesi sen.
Näillä tyylipoluilla voit soveltaa globaalia tyyliä käynnistyksessä renderöidäksesi Win8:n AeroLite-efektin Win7:ssä:
- 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);
- }
Kopioi koodi
|