PM> Install-Package MahApps.Metro
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
<Controls:MetroWindow x:Class="WpfApplication.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" Title="MainWindow" Height="600" Width="800"> </Controls:MetroWindow>
using MahApps.Metro.Controls; namespace WpfApplication { public partial class MainWindow : MetroWindow { public MainWindow() { InitializeComponent(); } } }
<Application x:Class="WpfApplication.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> <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! --> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> <!-- Accent and AppTheme setting --> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
能够添加本身的控制 LeftWindowsCommands 或 RightWindowsCommandshtml
<MetroWindow> ... </MetroWindow>
内添加:git
<Controls:MetroWindow.RightWindowCommands> <Controls:WindowCommands> <Button Content="settings" /> <Button> <StackPanel Orientation="Horizontal"> <Rectangle Width="20" Height="20" Fill="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}"> <Rectangle.OpacityMask> <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_cupcake}" /> </Rectangle.OpacityMask> </Rectangle> <TextBlock Margin="4 0 0 0" VerticalAlignment="Center" Text="deploy cupcakes" /> </StackPanel> </Button> </Controls:WindowCommands> </Controls:MetroWindow.RightWindowCommands>
显示图标须要加载MahApps.Metro.Resources资源github
PM> Install-Package MahApps.Metro.Resources
<Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/Resources/Icons.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Window.Resources>
You can choose between these available accents:app
“Red”, “Green”, “Blue”, “Purple”, “Orange”, “Lime”, “Emerald”, “Teal”, “Cyan”, “Cobalt”, “Indigo”, “Violet”, “Pink”, “Magenta”, “Crimson”, “Amber”, “Yellow”, “Brown”, “Olive”, “Steel”, “Mauve”, “Taupe”, “Sienna”
and these themes:ide
“BaseLight”, “BaseDark”
<Application x:Class="MahAppsMetroThemesSample.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="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> <!-- accent resource --> <!-- change "Cobalt" to the accent color you want --> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Cobalt.xaml" /> <!-- theme resource --> <!-- change "BaseLight" to the theme you want --> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { // get the current app style (theme and accent) from the application // you can then use the current theme and custom accent instead set a new theme Tuple<AppTheme, Accent> appStyle = ThemeManager.DetectAppStyle(Application.Current); // now set the Green accent and dark theme ThemeManager.ChangeAppStyle(Application.Current, ThemeManager.GetAccent("Green"), ThemeManager.GetAppTheme("BaseDark")); // or appStyle.Item1 base.OnStartup(e); } }
<Controls:MetroWindow.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <!-- this window should be blue --> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" /> <!-- and should use the light theme --> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Controls:MetroWindow.Resources>
public partial class AccentStyleWindow : MetroWindow { public void ChangeAppStyle() { // set the Red accent and dark theme only to the current window ThemeManager.ChangeAppStyle(this, ThemeManager.GetAccent("Red"), ThemeManager.GetAppTheme("BaseDark")); } }
还能够自定义主题ui
参考:this