在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