I dag, da jeg brugte et WPF-program, jeg tidligere skrev under Win8, fandt jeg ud af, at Win8-effekter nu understøttes (husk, at den tidligere version af .NET 4.0 ikke blev understøttet). Da WPF's kontroller er selvtegnede og ikke styres af systemtemaet, altså leveres .NET 4.5 med Win8-tema-stilfiler, og det er rimeligt, at denne stil også kan bruges under Win7.
Jeg satte . Flere emnestier, der understøttes under Net 4.5, udtrækkes som følger:
Win8(AeroLite): /PresentationFramework.AeroLite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; komponent/temaer/aerolite.normalcolor.xaml Win7 (Aero): /PresentationFramework.Aero, Version=4.0.0.0, Culture=neutral, 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, 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; komponent/temaer /luna.homestead.xaml Win98(Klassisk): /PresentationFramework. Classic, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; komponent/temaer /classic.xaml Bemærk: Jeg tager . Net 4.5-stil filsti, andre. Vejen for Net-versionen kan være en smule anderledes, men den kommer grundlæggende frem, når du bruger ILSpy for at se den.
Med disse stilveje kan du anvende den globale stil ved opstart for at gengive Win8's AeroLite-effekt i Win7:
- 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);
- }
Kopier kode
|