最近在做WPF项目,公司没有专门的UI工程师,什么都要自己做。接触WPF已经有好几年了,自定义样式什么的也可以做一些。WPF在使用样式的时候一般都是 Style="{StaticResource styleKey}"。能不能使控件同时应用多个 Style,类似于 HTML 中 class="class1 class2 class3"呢?

WpfMultiStyle

Google 一番,很多人都是通过 BaseOn的方式来实现,虽然能达到要求,但是不够灵活,也不是我想要的。

最终在 stackoverflow 有所收货。他是通过 MarkupExtension 扩展实现的。

整理之后发布在 Nuget,可以直接通过Nuget引用,也可以直接把源码拷贝到项目中直接使用。

源码在 https://github.com/PxAndy/WpfMultiStyle

使用

参照 Bootstrap 的按钮写了几个样式。具体的样式代码就不贴了,感兴趣的可以直接去 WpfMultiStyle.Test/MainWindow.xaml 看看。

引入命名空间

xmlns:wms="clr-namespace:WpfMultiStyle;assembly=WpfMultiStyle"

应用样式

以 Button 为例:

<Button Style="{wms:MultiStyle btn btn-default btn-lg}" Content="Large button" />

运行

看起来就是下面的样子:

参考

How to apply multiple styles in WPF

最新文章

  1. MVVM架构~knockoutjs系列之一些异常的总结(永久更新)
  2. 3.IP地址分类_规划_子网掩码
  3. python-unicode十进制数字转中文
  4. 六度分离--hdu1869
  5. 转: Nodejs 发送HTTP POST请求实例
  6. Fragment保持状态切换,fragment状态切换
  7. JsonCpp(C++程序使用)
  8. 分布式基础通信协议:paxos、totem 和 gossip(转载)
  9. 4-23 模块 hashlib ,configparser,loging,collections
  10. Linux下的计划任务at,batch,crontab
  11. 小技巧 - CSS中:hover调试
  12. MySQL DROP 大表时的注意事项
  13. count++线程安全与 synchronized对性能影响的测试
  14. SQLMAP学习笔记1 access注入
  15. Selenium(Python)等待元素出现
  16. Java基础数据类型的默认值
  17. 解决EF6中表名变成复数的情况
  18. jsp用tags传递参数
  19. InetAddress 类简介
  20. AC日记——软件包管理器 洛谷 P2416

热门文章

  1. 小技巧|使用Vue.js的Mixins复用你的代码
  2. Java学习笔记50:JSONObject与JSONArray的使用(转)
  3. Spring_IOC&amp;DI概述
  4. 在 CentOS 7.0 上安装配置 Ceph 存储
  5. python+senium+chrome的简单爬虫脚本
  6. 转 : Java的版本特性与历史
  7. scala学习手记34 - trait方法的延迟绑定
  8. 分享:自定义JAVA注解
  9. fiddler之使用教程(一)
  10. HDU 3452 Bonsai(树形dp)