WPF程式在Windows 7下應用Windows 8主題
阿新 • • 發佈:2018-11-12
原文:
WPF程式在Windows 7下應用Windows 8主題
這篇部落格介紹如何在Windows 7下應用Windows 8的主題。
首先我們先看一個很常見的場景,同樣的WPF程式(樣式未重寫)在不同的作業系統上展示會有些不同。這是為什麼呢?WPF程式啟動時會載入與作業系統對應的主題。下面將列出常見的OS主題與WPF主題的關係。
針對不同作業系統的主題,WPF程式會載入不同的主題assembly。這樣就形成了同樣的XAML程式碼在不同的OS中展示效果。
回到這篇部落格的主題,為Windows 7下的WPF程式應用Windows 8主題。通過上面的表格,可以知道,如果我們能夠給WPF程式應用上PresentationFramework.Aero2.dll的主題就可以了。
1. WPF程式中新增PresentationFramework.Aero2.dll引用;
2. 將PresentationFramework.Aero2.dll的Copy Local屬性設定為True;
3. 在App.xaml中新增下面的Resource;
<Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/PresentationFramework.AeroLite;component/themes/AeroLite.NormalColor.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources>
此時在Windows 7環境下執行應用Windows 8主題的程式,結果如下:
PresentationFramework.Aero Theme相關的assembly可以在 C:\Windows\Microsoft.NET\assembly\GAC_MSIL目錄下找到.
通過ILSpy獲得WPF不同主題assembly對應的樣式字典,
感謝您的閱讀!