Fluent/Ribbon是微軟在其最新桌面操做系統Windows 7中使用的圖形用戶界面。 Windows平臺的進化,伴隨着系統圖形界面的從新設計。從Windows XP到Windows Vista,最大的革新就是Windows Aero的引入。在Windows 7 中,Aero被保留下來。 可是,在將來,Windows 7的圖形用戶界面將朝着Office 2007相同的方向,名稱爲Fluent/Ribbon。ide
如今,咱們用WPF做爲用戶界面開發語言,來作一個簡單的實例做爲學習的開始。學習
須要下載第三方組件爲:Fluent.dll,下載網址:http://fluent.codeplex.com/spa
新建項目,選擇項目類型:WPF應用程序操作系統
<Window x:Class="TLAgent.SecurityManager.WPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
Title="MainWindow" Height="350" Width="525"> <Grid> </Grid> </Window>
<Fluent:RibbonWindow x:Class="TLAgent.SecurityManager.WPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Fluent="clr-namespace:Fluent;assembly=Fluent" Title="MainWindow" Height="350" Width="525"> <Grid> </Grid> </Fluent:RibbonWindow>
下一步MainWindow.xaml.cs中修改成:設計
using Fluent; namespace TLAgent.SecurityManager.WPF { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : RibbonWindow//修改成繼承RibbonWindow { public MainWindow() { InitializeComponent(); } } }
運行後,窗體效果:3d
這個窗體目前有三個主題,實例是Silver主題,還有兩個主題:Blue和Black,參考以下:code
Blue:xml
Black:blog
主題配置主要在App.xaml中設置:繼承
<Application x:Class="TLAgent.SecurityManager.WPF.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml"> <!--主題配置文件--> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/Fluent;Component/Themes/Generic.xaml" /> <ResourceDictionary Source="/Fluent;Component/Themes/Office2010/Black.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
可是咱們給系統作主題切換通常是經過代碼調用接口來實現的,如何設計?
我給這三個主題樣式用Enum設計了這三個主題ThemeStyle: Silver,Blue,Black
那麼怎樣讓整個系統應用都用這個主題?
在App.xaml.cs中,重寫OnStartup方法,把改變主題的方法放在這個方法中執行便可。
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Windows; using TLAgent.WPF.Theme; namespace TLAgent.SecurityManager.WPF { /// <summary> /// Interaction logic for App.xaml /// </summary> public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { ThemeManager.ChangeTheme(ThemeStyle.Silver); base.OnStartup(e); } } }
在系統的任何地方調用這個這個接口均可以改變主題:
ThemeManager.ChangeTheme(ThemeStyle.Silver);