WPF 使用MahApps.Metro UI库
在WPF中要想使用Metro风格是很简单的,可以自己画嘛..
但是为了节省时间,哈,今天给大家推荐一款国外Metro风格的控件库。
本文只起到抛砖引玉的作用,有兴趣还是推荐大家上官网,Thanks,官网地址 我会在底部发出。
实现效果
其实下面仅仅是对窗体的一个简单设置,以及放了些简单的按钮,这是本文抛砖引玉的示例程序,其实还有非常多的好玩的样式,包括动画效果。

安装 MahApps.Metro
这里依然推荐使用NuGet来进行安装,如下图所示。

然后在NuGet中搜索 MahApps.Metro ,然后进行安装即可,如下图所示。

安装好之后就已经在我们的引用中完成了。
实现Metro样式三部曲
1.首先将资源引入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样式了。
2.再把窗体换成Metro风格
在XAML状体中进行如下 xmlns 引用。
- xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
然后将Window标签替换为如下标签
- <controls:MetroWindow ...
就ok了。
看看我的窗体的XAML完整代码吧,我加了三个控件做示例,如下所示。
- <controls:MetroWindow x:Class="MetroWPF.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"
- GlowBrush="{DynamicResource AccentColorBrush}"
- Title="MainWindow" Height="350" Width="525">
- <controls:MetroWindow.RightWindowCommands>
- <controls:WindowCommands>
- <Button Content="settings" />
- <Button Content="设置" />
- </controls:WindowCommands>
- </controls:MetroWindow.RightWindowCommands>
- <Grid>
- <StackPanel>
- <Label Margin="20">www.wxzzz.com</Label>
- <TextBox Margin="40,10,40,10"></TextBox>
- <Button>Metro Style Button</Button>
- </StackPanel>
- </Grid>
- </controls:MetroWindow>
3.最后一步修改窗体cs代码中的继承
- //引用
- using MahApps.Metro.Controls;
- namespace MetroWPF
- {
- /// <summary>
- /// MainWindow.xaml 的交互逻辑
- /// </summary>
- public partial class MainWindow : MetroWindow
- {
- public MainWindow()
- {
- InitializeComponent();
- }
- }
- }
至此,我们的示例就完成了,我们顺便再来看看官方的窗体示例吧!其实都是很简单的设置,非常好用。

本文示例源码下载:MetroWPF
官方示例地址:http://mahapps.com/guides/quick-start.html
官方控件示例地址:http://mahapps.com/controls/
MahApps.Metro 项目源码:https://github.com/MahApps/MahApps.Metro
WPF 使用MahApps.Metro UI库的更多相关文章
- 使用WPF来创建 Metro UI程序
本文转载:http://www.cnblogs.com/TianFang/p/3184211.html 这个是我以前网上看到的一篇文章,原文地址是:Building a Metro UI with W ...
- 示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本
原文:示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本 一.目的:封装了一些控件到自定义的控件库中,方便快速开发 二.实现功能: 基本实现常 ...
- WPF 皮肤之MathApps.Metro UI库
在WPF中要想使用Metro风格是很简单的,可以自己画嘛.. 但是为了节省时间,哈,今天给大家推荐一款国外Metro风格的控件库. 本文只起到抛砖引玉的作用,有兴趣还是推荐大家上官网,Thanks,官 ...
- WPF之MahApps.Metro下载和WPF学习经验
这几天一直在学习WPF的东西.刚开始以为和Winform一样.拖拽控件来进行布局.结果远远没有那么简单.很多东西都需要自己写.包括样式.今天给大家分享一个 MahApps.Metro. 首先在NuGe ...
- 使用WPF来创建 Metro UI
当我第一次运行Zune时,我为这些美丽的UI所折服.当时就说这肯定不是用WPF做的,因为这些字体是如此的清晰而且UI反映的也非常快速..而且我从维基百科上也了解到Zune的第一个版本是2006年发布的 ...
- C# WPF开源控件库:MahApps.Metro
其实站长很久之前就知道这个开源WPF控件库了,只是一直欣赏不了这种风格,但也star了该项目.每次浏览该仓库时,发现star越来越多,也看到很多网友对它的褒奖,所以今天就向大家推荐这款WPF控件库. ...
- MahApps.Metro扁平化UI控件库(可修改主题色等)
一.名词解释 使用MahApps.Metro扁平化UI控件库,可以使界面呈现更加美观.本文将总结MahApps.Metro的使用方法,及如何自定义修改其主题颜色等. 详细内容可参考官网:https:/ ...
- WPF相关UI库
免费控件库: 1.Extended WPF Toolkit 官方拓展控件 http://wpftoolkit.codeplex.com/ 2.avalondock 可停靠布局(wpf toolkit包 ...
- 在 WPF 中使用 MahApps.Metro.IconPacks 提供的大量图标
MahApps.Metro.IconPacks https://github.com/MahApps/MahApps.Metro.IconPacks 提供了大量的高质量的图标供WPF使用,极其方便. ...
随机推荐
- 解决Tomcat加载时报APR错的问题
部署Tomcat的时候出现了如下错误, INFO: The APR based Apache Tomcat Native library which allows optimal performanc ...
- 51nod-1670-打怪兽(递推/组合数学)
1670 打怪兽 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 lyk在玩一个叫做“打怪兽”的游戏.游戏的规则是这样的.lyk一开始会有一个初始 ...
- underscore || lodash
1.http://www.css88.com/archives/5443 (underscore) let list = _.filter(record.orderGoodsList, item =& ...
- scrapy 6023 telnet查看爬虫引擎相关状态
Telnet终端(Telnet Console) Scrapy提供了内置的telnet终端,以供检查,控制Scrapy运行的进程. telnet仅仅是一个运行在Scrapy进程中的普通python终端 ...
- day6-面向对象补充篇--类的特殊成员
先说明一下,今天的内容主要转自师兄张其高的博客http://www.cnblogs.com/zhangqigao/articles/6935221.html 前面我们讲了类的方法,有普通方法,就是我们 ...
- 转:基于Flume的美团日志收集系统(一)架构和设计
美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...
- 练习-99乘法表 token生成器 翻译小工具
一.99乘法表 1.1 技术点 记住: for 循环的使用,以及for的嵌套使用 range()的使用,掌握sep为负数的使用的使用. print() 函数的使用,默认的结尾的换行符 替换 end= ...
- Zabbix在CentOS7上的安装方法:
).zabbix-server 要安装zabbix-server首先需要安装MySQL数据库,当然你可以将MySQL换成其他的数据库 1.1)创建zabbix数据库:CREATE DATABASE z ...
- C++复习15.指针知识
C++复习15.指针知识 4.指针知识 在Tencent 笔试和面试中都考到了 C/C++中的指针知识,因为自己很不喜欢使用指针,所以才开始学习 Java的,但是现在看来还是躲不掉的,所 ...
- 六.dbms_session(提供了使用PL/SQL实现ALTER SESSION命令)
1.概述 作用:提供了使用PL/SQL实现ALTER SESSION命令,SET ROLE命令和其他会话信息的方法 .2.包的组成 1).set_identifier说明:用于设置会话的客户ID号.语 ...