MahApps.Metro 的使用小结。
最近项目中接触到一款metro扁平化样式UI控件库,非常值得推荐。写下这篇博客,希望在总结中能不断提高。同时希望能为读者提供一些帮助~
一,链接
二,安装
- 通过NuGet GUI(右键单击您的项目,点击NuGet包管理中,选择在线和搜索MahApps.Metro)
- 包管理器控制台:
PM> Install-Package MahApps.Metro
三,实现Metro样式
1,XAML窗体中进行xmlns引用
xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
2,对Window标签进行替换
<controls:MetroWindow ...
3,修改窗体cs代码中的继承
//引用
using MahApps.Metro.Controls;
namespace MetroWPF
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : MetroWindow
{
public MainWindow()
{
InitializeComponent();
}
}
}
4,使用内置的样式App.xaml
<Application x:Class="MetroWPF.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" />
<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>
这样我们就可以实现基本的Metro风格的界面啦。同时抛砖引玉,实现复杂一些的样式。
四,主题的修改
/// <summary>
/// 设置窗口标题和背景样式
/// </summary>
/// <param name="accentName">窗口标题栏样式</param>
/// <param name="themeName">背景样式</param>
private void ChangeTheme(string accentName, string themeName)
{
Accent expectedAccent = ThemeManager.Accents.First(x => x.Name == accentName); //"Blue"
AppTheme expectedTheme = ThemeManager.GetAppTheme(themeName); //"BaseDark"
ThemeManager.ChangeAppStyle(Application.Current, expectedAccent, expectedTheme);
}
五,控件样式修改
MahApps.Metro可以通过许多内置的样式对控件进行样式修改
举个栗子:
左边:默认按钮样式
右边:圆形按钮样式,按钮中加入Style属性: Style=”{DynamicResource MetroCircleButtonStyle}”
更多丰富的样式地址可以在官方的示例中找到,这里就不一一列举了~
六,弹出消息窗口
this.ShowMessageAsync("标题", "内容", MessageDialogStyle.Affirmative, new MetroDialogSettings() { AffirmativeButtonText = "确定" });
四个参数分别为标题、内容、按钮类型、按钮的名称。
本文参考博客:王旭
来源:CSDN
作者:lurifan
链接:https://blog.csdn.net/lurifan/article/details/60955686