1. 程式人生 > >WPF程式在Windows 7下應用Windows 8主題

WPF程式在Windows 7下應用Windows 8主題

原文: 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對應的樣式字典,

感謝您的閱讀!