在WPF中要想使用Metro风格是很简单的,可以自己画嘛..

但是为了节省时间,哈,今天给大家推荐一款国外Metro风格的控件库。

本文只起到抛砖引玉的作用,有兴趣还是推荐大家上官网,Thanks,官网地址 我会在底部发出。

实现效果

其实下面仅仅是对窗体的一个简单设置,以及放了些简单的按钮,这是本文抛砖引玉的示例程序,其实还有非常多的好玩的样式,包括动画效果。

安装 MahApps.Metro

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

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

安装好之后就已经在我们的引用中完成了。

实现Metro样式三部曲

1.首先将资源引入App.xaml

  1. <Application x:Class="MetroWPF.App"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. StartupUri="MainWindow.xaml">
  5. <Application.Resources>
  6. <ResourceDictionary>
  7. <ResourceDictionary.MergedDictionaries>
  8. <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
  9. <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
  10. <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
  11. <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
  12. <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
  13. </ResourceDictionary.MergedDictionaries>
  14. </ResourceDictionary>
  15. </Application.Resources>
  16. </Application>

引入之后几乎我们所有的控件都具备了Metro样式了。

2.再把窗体换成Metro风格

在XAML状体中进行如下 xmlns 引用。

  1. xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"

然后将Window标签替换为如下标签

  1. <controls:MetroWindow ...

就ok了。

看看我的窗体的XAML完整代码吧,我加了三个控件做示例,如下所示。

  1. <controls:MetroWindow  x:Class="MetroWPF.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
  5. GlowBrush="{DynamicResource AccentColorBrush}"
  6. Title="MainWindow" Height="350" Width="525">
  7. <controls:MetroWindow.RightWindowCommands>
  8. <controls:WindowCommands>
  9. <Button Content="settings" />
  10. <Button Content="设置" />
  11. </controls:WindowCommands>
  12. </controls:MetroWindow.RightWindowCommands>
  13. <Grid>
  14. <StackPanel>
  15. <Label Margin="20">www.wxzzz.com</Label>
  16. <TextBox Margin="40,10,40,10"></TextBox>
  17. <Button>Metro Style Button</Button>
  18. </StackPanel>
  19. </Grid>
  20. </controls:MetroWindow>

3.最后一步修改窗体cs代码中的继承

  1. //引用
  2. using MahApps.Metro.Controls;
  3. namespace MetroWPF
  4. {
  5. /// <summary>
  6. /// MainWindow.xaml 的交互逻辑
  7. /// </summary>
  8. public partial class MainWindow : MetroWindow
  9. {
  10. public MainWindow()
  11. {
  12. InitializeComponent();
  13. }
  14. }
  15. }

至此,我们的示例就完成了,我们顺便再来看看官方的窗体示例吧!其实都是很简单的设置,非常好用。

本文示例源码下载:MetroWPF

官方示例地址:http://mahapps.com/guides/quick-start.html

官方控件示例地址:http://mahapps.com/controls/

MahApps.Metro 项目源码:https://github.com/MahApps/MahApps.Metro

WPF 使用MahApps.Metro UI库的更多相关文章

  1. 使用WPF来创建 Metro UI程序

    本文转载:http://www.cnblogs.com/TianFang/p/3184211.html 这个是我以前网上看到的一篇文章,原文地址是:Building a Metro UI with W ...

  2. 示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本

    原文:示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本 一.目的:封装了一些控件到自定义的控件库中,方便快速开发 二.实现功能: 基本实现常 ...

  3. WPF 皮肤之MathApps.Metro UI库

    在WPF中要想使用Metro风格是很简单的,可以自己画嘛.. 但是为了节省时间,哈,今天给大家推荐一款国外Metro风格的控件库. 本文只起到抛砖引玉的作用,有兴趣还是推荐大家上官网,Thanks,官 ...

  4. WPF之MahApps.Metro下载和WPF学习经验

    这几天一直在学习WPF的东西.刚开始以为和Winform一样.拖拽控件来进行布局.结果远远没有那么简单.很多东西都需要自己写.包括样式.今天给大家分享一个 MahApps.Metro. 首先在NuGe ...

  5. 使用WPF来创建 Metro UI

    当我第一次运行Zune时,我为这些美丽的UI所折服.当时就说这肯定不是用WPF做的,因为这些字体是如此的清晰而且UI反映的也非常快速..而且我从维基百科上也了解到Zune的第一个版本是2006年发布的 ...

  6. C# WPF开源控件库:MahApps.Metro

    其实站长很久之前就知道这个开源WPF控件库了,只是一直欣赏不了这种风格,但也star了该项目.每次浏览该仓库时,发现star越来越多,也看到很多网友对它的褒奖,所以今天就向大家推荐这款WPF控件库. ...

  7. MahApps.Metro扁平化UI控件库(可修改主题色等)

    一.名词解释 使用MahApps.Metro扁平化UI控件库,可以使界面呈现更加美观.本文将总结MahApps.Metro的使用方法,及如何自定义修改其主题颜色等. 详细内容可参考官网:https:/ ...

  8. WPF相关UI库

    免费控件库: 1.Extended WPF Toolkit 官方拓展控件 http://wpftoolkit.codeplex.com/ 2.avalondock 可停靠布局(wpf toolkit包 ...

  9. 在 WPF 中使用 MahApps.Metro.IconPacks 提供的大量图标

    MahApps.Metro.IconPacks https://github.com/MahApps/MahApps.Metro.IconPacks 提供了大量的高质量的图标供WPF使用,极其方便. ...

随机推荐

  1. 使用ASP.NET 的缓存机制的示例

    if (HttpContext.Current.Cache["code_" + CodeType] == null) { SysCodeService codeService = ...

  2. Seaborn-05-Pairplot多变量图

    转自:http://www.jianshu.com/p/6e18d21a4cad

  3. asp.net服务器上无法发送邮件的问题

    前几天为开发的网站做了个发送邮件的功能,但是部署到服务器上无法发送邮件,提示由于目标机器积极拒绝,无法连接.在网上找到了一个解决办法 如果安装了McAfee杀毒软件(按照“手工安装方法”安装),首先需 ...

  4. h5开发中,利用微信或者QQ登陆以后获取用户头像在canvas画布显示问题

    在实际开发上先的h5页面产品中,总会遇到各种坑,好多坑都是安卓和iPhone端兼容的问题(用电脑谷歌浏览器输入  chrome://inspect/#devices可以用手机USB调试,打开) eg: ...

  5. Django开发BUG "Model class WH_auth.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS."

    当进行数据库迁移的时候发生问题,报错如下:RuntimeError: Model class WH_auth.models.User doesn't declare an explicit app_l ...

  6. [Android]Adb connection Error:远程主机强迫关闭了一个现有的连接

    目前,针对Android手机研发的刷机软件和手机助手软件,都会调用Google开发的adb工具与手机进行通信. 有的刷机软件或者手机助手软件,在系统里会常驻一个服务,独占adb的端口(5037),这样 ...

  7. iOS TableView常见问题

    Q:表视图只需要部分单元格,怎样删除下方多余的空白单元格? A:viewDidLoad中添加 self.tableView.tableFooterView=[[UIView alloc] init]; ...

  8. 通过ping 主机名,或者主机名对应的IP地址

    通过ping 主机名,或者主机名对应的IP地址: 如下图: 懵了吧? 但是你用 ping 主机名 -4

  9. LVS模式二:隧道模式(Tun)

    一.IP隧道(IP Tunneling) ip隧道是一个将ip报文封装到另一个ip报文的技术,这可以使得目标为一个ip地址的数据报文被封装和转发到另一个ip地址.ip隧道技术也成为ip封装技术.    ...

  10. 手机通过笔记本开的WIFI访问TOMCAT服务器站点示例

    我一直想用手机连上笔记本上的服务器TOMCAT,尝试了好久没连上,实验室一个妹子会这个技术,我也想学,自己摸索着学了几次,没成功,今晚想个办法试了一下,可以连接了,以后可以做手机网站开发了,这也是移动 ...