今日、以前Win8で書いたWPFプログラムを使ってみたところ、Win8のエフェクトがサポートされていることに気づきました(以前の.NET 4.0バージョンはサポートされていませんでした)。 WPFのコントロールはシステムテーマによって制御されず自己作成されているため、.NET 4.5にはWin8のテーマスタイルファイルが付属しており、このスタイルはWin7でも使えると考えられます。
私は を入力しました。 Net 4.5でサポートされているいくつかのトピックパスは以下の通り抽出されます。
Win8(AeroLite): /PresentationFramework.AeroLite, バージョン=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; component/themes/aerolite.normalcolor.xaml Win7(Aero):/PresentationFramework.Aero、バージョン=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、バージョン=4.0.0.0、culture=neutral、PublicKeyToken=31bf3856ad364e35; component/themes/luna.normalcolor.xaml WinXP Silver(Luna):/PresentationFramework.Luna、バージョン=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/themes /luna.homestead.xaml Win98(Classic): /PresentationFramework。 Classic、バージョン=4.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35; コンポーネント/テーマ /classic.xaml 注:私は Net 4.5スタイルのファイルパス、その他。 Net版の経路は少し異なるかもしれませんが、基本的にはILSpyで表示すると出てくるものです。
これらのスタイルパスを使えば、起動時にグローバルスタイルを適用してWin7でWin8のAeroLiteエフェクトをレンダリングできます:
- 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);
- }
コードをコピーします
|