WPF界面MahApps.Metro之应用
大家都知道,经常干后端的程序猿通常不善于设计前端界面,来个界面的活,要么傻眼了,要么花大力气自己去做组件,费时费力,效果不好。好的程序首先要“长得漂亮”,赏心悦目的界面可以提升应用程序的整体亲和力。
Wpf程序优点是基于DirectX创建,基于矢量绘制,显示效果流畅度远高于WinForm,但是VS的IDE开发Wpf,界面需要花大力气去制作,对于没有美感的程序猿,挑战很大。
国外团队( https://mahapps.com/)在 https://github.com/MahApps/MahApps.Metro上提供了一套完整的开源的皮肤系统,使用简单,效果好,是轻量级应用程序快速“美容”的利器。
目前,官网上提供了1.6和2.0两个版本,其中2.0版本已经抛弃了.net4.0环境,适用于更高级别的.dotnet环境,而本人比较保守,常常用Win7系统,所以今天就来谈一谈1.6版本的用法。
MetroWindow是什么,可以干什么
mahapps.metro是PaulJenkins在2011年开始的一个项目,它是一种将metro风格的用户界面引入WPF应用程序的简单方法。
GitHub主页上定义如下:
A toolkit for creating metro-style WPF applications. Lots of goodness out-of-the box.
用于创建Metro风格的WPF应用程序的工具集合。
总结其功能如下:
- 1、提供了一个窗体风格,带顶部命令按钮
- 2、提供了一系列Metro风格的控件,具体的有:
Buttons 按钮
ContextMenu 菜单
DataGrid 数据表格
Dialogs 提示框(个人不太喜欢)
FlipView (滚动图,类似APP的滚动广告)
Flyouts (弹出按钮及区域)
NumericUpDown(数值框,自带±按钮)
ProgressBar(进度条)
ProgressRing(进度环)
RangeSlider(可选区域的拖动滑块,个人认为做的很好,可以用来确定范围)
Slider(滑块)
SplitButton and DropDownButton(下来按钮)
TabControl(选项卡)
TextBox(文本框)
Tile(瓦片)
ToggleButton(可选择按钮)
ToggleSwitch(开关,类似手机app)
TransitioningContentControl(转场容器,一会另拿出来单独说)
Badged Controls(标记控件,类似手机上图标的红点数值提示)
有以上控件,基本能做一个轻量级的漂亮的WPF界面应用程序了。
重点对“TransitioningContentControl”做一介绍:
TransitioningContentControl是变化容器,其有一个关键属性“Content”,用来设置内容控件,如有两个按钮button1,button2,当其内部的Content从button1改为button2时,就会触发切换动画,动画可通过“.Tra