写在前面

  作为新年开篇的文章,当然要选择比较“Cool”的东西来分享,这自然落到了WPF身上,WPF技术自身可塑性非常强,其强大的绘图技术以及XAML技术比WinForm而言有本质的飞跃。

  切入正题,本文来自于一个项目的Demo演示版,当然为了做到“Cool”我选择了WPF作为项目的概念版进行演示,所用到包括大名鼎鼎的MahApps.Metro以及AvalonDock等开源框架完美发挥WPF的优势,本文不会很深入的讲解每个技术的详细功能,而是结合项目Demo进行一个“组合式”框架的介绍,希望各位读者喜欢,如果觉得值得还不错的话,请点击“推荐一下”。

先睹为快:

1. 使用MahApps.Metro搭建框架

1.1 快速应用最精简的项目

首先要增加对MahApps.Metro和MahApps.Metro.Resources的引用;

其次,窗体要继承 Metro.MetroWindow (Controls:MetroWindow x:Class="TestDemo.MainWindow")。

这样,窗体有了基本的样式风格和主题颜色,另外MahApps.Metro增强了标题栏,可定制“左侧功能区域”和“右侧功能区域”,例如

"Setting"和“About”按钮功能以及左侧GitHub图标功能,扩展了界面上可编辑元素,直接在MetroWindow.LeftWindowCommand中增加内容即可:

 

至此,基本框架已经形成,接下来让我们了解MahApps提供的Metro风格的控件吧。

1.2 增加Metro风格的控件

这里最好的参考是官方的Demo,需要使用控件时只需要对应的拷贝一些“代码”即可。直接上图:

2. 使用AvalonDock

2.1 AvalonDock2.0的问题

在这篇文章之前,本人使用的是2.0版本,官网提供了最新的下载,可是在使用的过程中有一个非常严重的问题:整合在MahApps框架中,AvalonDock的AutoHide控件持续“透明”,这一BUG在2.0当中存在。

设置AllowsTransparency =“FALSE"也不能解决此问题,最终还原为1.3稳定版。

2.2 如何定制布局

最好的参考还是官方文档:http://avalondock.codeplex.com/wikipage?title=GettingStarted&referringTitle=Documentation 这里还是1.3版本,官网2.0版本文档还在建设中。。。总感觉作者已经不在维护此项目了,着实令人寒心。

3. 结语及引用

Demo点此下载

有任何问题欢迎大家提问,很多细节之处没有写出来,Demo中会有体现。

作者:Stephen Cui 
出处:http://www.cnblogs.com/cuiyansong

版权声明:文章属于本人及博客园共有,凡是没有标注[转载]的,请在文章末尾加入我的博客地址。 

如果您觉得文章写的还不错,请点击“推荐一下”,谢谢。

最新文章

  1. mysql数据库存储路径更改 数据文件位置
  2. 多种JSON格式及遍历方式
  3. eclipse如何配置tomcat运行web项目时省略项目名称
  4. ubuntu command
  5. Leetcode 35 Search Insert Position 二分查找(二分下标)
  6. PHP学习之登录以及后台商品展示
  7. Intelligencia.UrlRewriter在IIS 7.0下的完全配置攻略
  8. 超链接的那些事(二): 属性href
  9. [COJ0988]WZJ的数据结构(负十二)
  10. EF中使用SQL语句或存储过程(小笔记)
  11. mysql 授权 打开全部
  12. jQuery的动画效果
  13. sdk 提示至少需要Build-tools 19.1.0以上的解决方式
  14. vue中的checkbox全选和反选
  15. JS:onmouseover 、onmouseout
  16. 【MySQL经典案例分析】 Waiting for table metadata lock
  17. 浅谈一类无关序列有前缀和性质的统计问题的离线解法 BZOJ3626
  18. linux下mysql源码安装
  19. zookeeper做集群后启动不了,大部分原因是防火墙未关闭
  20. ubuntu 16.04 tip

热门文章

  1. day02——while、字符串格式化、运算符、编码初识
  2. Golang修改json文件的两种方法
  3. (八)pdf的构成之文件体(page属性)
  4. Spark实战电影点评系统(二)
  5. Maven 初学+http://mvnrepository.com/
  6. cas sso docker部署service
  7. 如何在Mybatis的xml文件调用java类的方法
  8. Spring Security 解析(二) —— 认证过程
  9. Java自学-数组 排序
  10. centos7配置nfs共享存储服务