最近在做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" />

运行

看起来就是下面的样子:

后记

由于之前不能在设计时显示效果,后面又做了优化,并且新增了附加属性实现的方式,这种方式可以在设计时实时显示效果。

<Button wms:Apply.MultiStyle="btn btn-primary btn-lg" Content="Large button" />

参考

How to apply multiple styles in WPF

转载于:https://www.cnblogs.com/ainijiutian/p/apply-multiple-styles-to-one-element-for-wpf.html

[WPF]控件应用多个样式相关推荐

  1. WPf控件模板缺省样式

    WPF控件模板缺省样式:http://www.cnblogs.com/khler/archive/2009/07/14/1523043.html 转载于:https://www.cnblogs.com ...

  2. WPF 控件专题 ComboBox 自定义样式

    1.ComboBox 介绍 ComboBox 表示带有下拉列表的选择控件,通过单击控件上的箭头可显示或隐藏下拉列表.也叫下拉列表控件. ******************************** ...

  3. WPF 控件设计艺术[开篇]

    WPF 控件设计艺术--样式.模板.触发器.数据绑定 WPF 控件设计艺术--样式.模板.触发器.数据绑定:围绕WPF控件设计,从样式.模板.触发器和数据绑定触发,引导初学者快速设计和使用WPF控件设 ...

  4. wpf控件样式管理示意图

    原文:wpf控件样式管理示意图

  5. WPF 控件样式及样式事件设置

    实例下载:WPF控件样式及样式事件设置-C#文档类资源-CSDN下载 封装用户控件实例:图片选择Checkbox(用户控件)-C#文档类资源-CSDN下载 1.直接在代码中设置控件样式(例:设置按键圆 ...

  6. WPF控件样式、模板

    初次写博客,新手请多指教. 写WPF已有一年有余了,平时在工作项目当中喜欢总结一些公用库,通用样式之类的,以便于日后工作中遇到,可以直接复用,提供工作效率. 本文提供 Windows.Button.S ...

  7. wpf控件开发基础(1)

    从现在开始,我将尝试写有关wpf控件开发相关的知识,把文章这对我来说很难,所以这个系列的文章在时间跨度上可能会拖的比较长.我希望我介绍是比较详细的,而不仅仅是一个简单的控件开发流程.我是一个真正的We ...

  8. [转] 使用模板自定义 WPF 控件

      [转] 使用模板自定义 WPF 控件                                                                                 ...

  9. WPF 控件库——仿制Windows10的进度条

    WPF 控件库--仿制Windows10的进度条 原文:WPF 控件库--仿制Windows10的进度条 一.其实有现成的 先来看看Windows10进度条的两种模式: 网上有不少介绍仿制Window ...

  10. wpf初学者-wpf控件简单介绍

    本文大纲 1.基本控件介绍与用法. 基本控件介绍与用法 文本控件 Label控件 label控件:一般用户描述性文字显示. 在Label控件使用时,一般给予用户提示.用法上没有什么很特殊的,label ...

最新文章

  1. linux下=号与==号
  2. 斜面孔如何绘制_journal of neuroscience:面孔的神经表征与眼动模式相协调
  3. 5个无聊Python程序,用Python整蛊你的朋友们吧
  4. ITNEXT :“这个项目可能会改变我们使用 Kubernetes 的方式”
  5. java基础----集合之Map集合基本方法的使用以及遍历
  6. python基础十一之迭代器和生成器
  7. Java笔记-Java中备忘录模式
  8. XTU 1252 Defense Tower
  9. Vue.js之初印象
  10. mysql 大于小于不可在一个不等式中同时写
  11. FPGA原理图设计----Arria II 系列FPGA设计(SATA)
  12. 易语言解析html实例,易语言总使用正则表达式实例解析
  13. POI 合并单元格后设置列宽自适应的问题
  14. 智能手机网页制作12个注意事项
  15. 我在b站学数据库 (九):函数
  16. Vmware中Server配置静态IP地址
  17. Android M及以上版本系统 悬浮窗权限 的解决方案
  18. Apache ZooKeeper【动物管理员】
  19. 1.神奇的字符串之快速求和
  20. SQL语言_3 模糊查询和聚合函数

热门文章

  1. CSS 文档架构——便于读取
  2. [转] 虚拟机VMware3种网络模式(桥接、nat、Host-only)的工作原理
  3. scrapy分布式爬虫设置
  4. DataNucleus之JDO操作演示样例
  5. .Net面试葵花宝典
  6. [BZOJ1009]GT考试
  7. 让一个视图对触摸事件作出响应, 需要实现的方法
  8. 机器学习基石笔记9——机器可以怎样学习(1)
  9. HTML5的绘画支持(五)
  10. With great power comes great responsibility