一个Metro风格的开源项目 MahApps.Metro

目录:

Metro风格控件

Metro主题

MahApps.Metro文档地址:http://mahapps.com/MahApps.Metro/

源码地址:https://github.com/MahApps/MahApps.Metro

在VS中可以装一个NuGet插件来下载MahApps.Metro.dll和MahApps.Metro.Resources.dll。

MahApps.Metro文档写的很详细了。可以先了解下如何使用。在往下看这篇文章。

文档也给出了一些Examples:

Metro风格控件

MahApps.Metro大概有16个自定义控件。

1、AppBarButton继承Button,在Button上增加了Visual类的属性。用来改变可视化界面。

2、LayoutInvalidationCatcher在逻辑树中测绘Child所需的空间。

3、MetroContentControl这个控件主要是在TabControl切换的时候,给它一些切换的动画。同时必须配合ReloadBehavior.OnSelectedTabChanged这个附加属性。

4、MetroImage这个AppBarButton类似,只是模板Style不同。

5、MetroProgressBar继承ProgressBar,也就是对进度条模板重写。加了动画,类似于Loading效果。

6、Panorama继承于ItemsControl,设置Item的高度,宽度还有动画效果。

7、PanoramaItem是一个继承于ContentControl自定义控件,他增加了header,HeaderOpacity,HeaderTemplate,Orientation的依赖属性。

8、Planerator控制子控件的旋转。

9、ProgressIndicator和MetroProgressBar类似,效果图,也是一种加载动画控件。ProgressIndicator主要是以xaml来写的,而MetroProgressBar主要是以代码来写的。

10、ProgressRing和上面的类似

11、RevealImage给ImageSource增加些鼠标移动到上面的动画效果。

12、Title 继承于Button,多了几个依赖属性(Title,Count,KeepDragging,TitleFactor)

13、ToggleSwitch继承于ToggleButton,

14、ToggleSwitchButton和ToggleSwitch类似主要实现这种开关效果。

15、TransitioningContentControl控件内容动态出现和消失。

16、WindowCommands实现了窗体的最小化,还原,最大化,关闭功能。就是Window窗体上面的边框。这里文档上也写到不能自动绑定Caliburn.Macro的事件命令。必须写cal:Message.Attach来绑定。x:Name自动绑定的写法失效了。

Metro主题

ThemeManager这个类,来改变主题风格。源码里面有白色和黑色两套背景主题(BaseLight.xaml和BaseDark.xaml)

通过ThemeManager.ChangeTheme改变主题颜色。

时间: 2024-08-19 05:22:50

一个Metro风格的开源项目 MahApps.Metro的相关文章

准备开一个地图SDK的开源项目

最近有点空闲时间了, 准备开一个地图SDK的开源项目, 现在的地图SDK已经有很多了, 再做一个跟重新发明个轮子差不多, 但还想做的原因是想在别的轮子的基础上造个轮子... 初步设想是基于开源的地图渲染引擎tangram-es进行二次开发, 使用Qt5.7进行二次封装, 提供QWidget和QML两种接口 项目地址: https://github.com/tiangles/ltdmap 支持平台: linux gcc 32/64 bits, arm/x86, 未来打算移植到QNX和win32,

android 5.0 Material Design酷炫风格的开源项目集合

一.前言 Android 5.0上线有一个段时间了,估计小伙伴们都看到了Android5.0界面上相比前面几个版本有了很大的突破,给人一种非常酷炫,平滑的跳转,生动的界面切换,全新的感觉,Android用户终于可以感叹,Google升级了这么多个版本终于像样的搞了一回界面.开发者们看到这些优美的动画也要大户过瘾啊.github上面的高人们都已经饥渴难耐了出了写出了各种好用,炫丽的特效,我们今天就来看一下都有哪些可以用比较爽的开源项目. Material Menu 项目地址:https://git

第一个Android TV Launcher开源项目

Android TV Launcher开源项目 这个项目是机顶盒桌面,用来播放视频.显示图片.应用管理和其他针对机顶盒产品的设置.目前git和CSDN code上面都没有类似的开源项目,正好本人最近在开发类似产品,网上类似研究还非常少,完全自己实现还是比较困难.所以就把目前的项目开源出来,也有利于其他人少走弯路. git项目地址 CSDN code项目地址 项目框架结构 UI.adapter.实体类.图片cache.网络层. 这个层级关系还是和大部分项目是类似的. 功能模块的详细实现方式 这个部

一个P2P点播直播开源项目:P2PCenter

最近跟着公司的项目走,我也研究了不少东西,尤其是在P2P方面,广泛涉猎各种开源项目,尤其是国外的开源项目,意外的发现了一个国内的项目,做的还不错,推荐一下.---------------------使用平台:客户端:Windows 平台服务器:Windows & Linux框架图例: 项目简介: P2P点播直播开源项目是一个由Kevin发起,多人参与开发并不断更新,符合GPL开源协议的开源项目. 项目成员: 系统架构及初期开发: 符文科(Kevin), 马军(Mark), 张威, 高成, 王亮 

一个基于DDD的开源项目,各种技术!

基于asp.net mvc + DDD 构架的开源.net cms系统. 运行截图: 特性: 跨平台 支持Windows.Linux.MacOX运行.linux运行案例:http://blog.ops.cc DDD领域驱动 使用领域驱动设计构建,通过简单的领域模型,提供了强大扩展能力. 支援多种数据库 默认使用SQLite作为数据库,同时支持Sql Server.MySQL.OLEDB(ACCESS) 支持模板引擎 内嵌一个简单的模板引擎实现,可以用html作为呈现主体.后台支持模板的安装,网络

我发起并创立了一个 C 语言编译器 开源项目 InnerC

本文是 VMBC / D#  项目 的 系列文章, 有关 VMBC / D# ,  见 <我发起并创立了一个 VMBC 的 子项目 D#>(以下简称 <D#>)  https://www.cnblogs.com/KSongKing/p/10348190.html    . VMBC  需要一个 内置 的  C 编译器,   想来想去, 觉得还是自己写一个, 计划用  C 语言 写,  因为 VMBC 的  C 编译器 要求是一个 本地库,  如果不要求是 本地库,  我就用 C#

我发起了一个 网格计算 协议 开源项目 GridP

GridP  是   Grid Protocol   的 全称  . 我在 <关于软件产业的两个契机>  https://www.cnblogs.com/KSongKing/p/9531950.html     中提到: 云计算是第一代互联网发展到成熟的标志 . 网格计算是第二代互联网的开始 . 我在 <Grid Virtual Server 和 网格计算>  https://www.cnblogs.com/KSongKing/p/9486434.html    中提到: 网格计算

通过beego快速创建一个Restful风格API项目及API文档自动化(转)

通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界面. 一.创建数据库及数据表(MySQL) #db--jeedev -- ---------------------------- -- Table structure for `app` -- ---------------------------- DROP TABLE IF EXISTS `a

转:从开源项目学习 C 语言基本的编码规则

从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项目中的每个开发者使用他自己的风格. 所有代码都保持一致风格的大型库,更容易让人理解. 有许多资源是关于能让人采取的更好的编码规则的,我们可以通过以下方式学到好的编码规则: 阅读书或杂志 浏览网站 与同事交流 参加培训 另一个更有趣的方法是通过研究一个成熟的知名开源项目来得知其开发者是怎样编写代码的.