引:

WPF 自定义CheckBox样式 - 一叶知秋,知寒冬 - 博客园

Checkbox基本样式

下面的样式包含了CheckBox三种状态的显示,这里CheckBox的三种状态是使用图片代替的。当然你也可以使用字体图标或者Path绘制。

先看效果:

代码如下:

  <Style x:Key="chkBase" TargetType="CheckBox"><Setter Property="IsChecked" Value="False"/><Setter Property="Background" Value="Transparent"/><Setter Property="Foreground" Value="#999"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="CheckBox"><DockPanel  Background="{TemplateBinding Background}" ToolTip="{TemplateBinding Content}" LastChildFill="False" Width="{TemplateBinding Width}"><Image Margin="2 0 0 0" DockPanel.Dock="Left" x:Name="_img"  Stretch="None" Source="/Images/chk_no.png"/><TextBlock DockPanel.Dock="Left" Foreground="{TemplateBinding Foreground}" Margin="2 0 0 0" VerticalAlignment="Center" Text="{Binding Content,RelativeSource={RelativeSource TemplatedParent}}" /></DockPanel><ControlTemplate.Triggers><Trigger Property="IsChecked" Value="true"><Setter TargetName="_img" Property="Source" Value="/Images/chk_yes.png"/></Trigger><Trigger Property="IsChecked" Value="{x:Null}"><Setter TargetName="_img" Property="Source" Value="/Images/chk_null.png"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style>

图片素材:

二、CheckBox其它形式

下面这种样式的CheckBox一般作为开关按钮。在移动端比较常见。实现过程为纯样式。

样式代码如下:

 <Style x:Key="chkBullet" TargetType="CheckBox"><Setter Property="IsChecked" Value="False"/><Setter Property="Background" Value="Transparent"/><Setter Property="Foreground" Value="#999"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="CheckBox"><Border Width="60" Height="20" CornerRadius="10" Background="{TemplateBinding Background}" ><Grid><Border x:Name="border" Width="18" Height="18" CornerRadius="9" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="1 0" Background="White"><Border.RenderTransform><TranslateTransform  X="0"/></Border.RenderTransform></Border><TextBlock x:Name="txt" Text="{TemplateBinding Content}" Margin="9 0" VerticalAlignment="Center" Foreground="White" ><TextBlock.RenderTransform><TranslateTransform   X="18"></TranslateTransform></TextBlock.RenderTransform></TextBlock></Grid></Border><ControlTemplate.Triggers><Trigger Property="IsChecked" Value="true"><Setter Property="Text" TargetName="txt" Value="{Binding Tag,RelativeSource={RelativeSource TemplatedParent}}"/><Trigger.EnterActions><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" To="40" Duration="00:00:0.2"/><DoubleAnimation Storyboard.TargetName="txt" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" To="0" Duration="00:00:0.2"/></Storyboard></BeginStoryboard></Trigger.EnterActions><Trigger.ExitActions><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" To="0" Duration="00:00:0.2"/><DoubleAnimation Storyboard.TargetName="txt" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" To="18" Duration="00:00:0.2"/></Storyboard></BeginStoryboard></Trigger.ExitActions></Trigger><Trigger Property="IsChecked" Value="False"><Setter Property="Text" TargetName="txt" Value="{Binding Content,RelativeSource={RelativeSource TemplatedParent}}"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style>

引用方式如下:

<CheckBox Style="{StaticResource chkBullet}" Background="#5387b9" IsChecked="False" Content="Off" Tag="On" Margin="10"/>

我们通过Background来控制背景色,Content来控制未选中的文本,Tag为选中的文本。

效果如下:

所有代码已经上传到github:https://github.com/caomfan/WpfDemo.git

WPF 自定义CheckBox样式相关推荐

  1. 自定义checkbox样式

    通过选中时添加背景图片自定义CheckBox样式 效果: CSS样式: <style type="text/css>label {width: 10%;display: flex ...

  2. php复选框样式,如何自定义checkbox样式?附代码

    本篇文章给大家带来的内容是关于如何自定义checkbox样式?附代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 修改原生checkbox样式. 效果 原理 1.利用CSS3属性 ...

  3. android自定义checkbox样式,自定义CheckBox样式

    阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 自定义样式 自定义选择器效果 自定义素材 ...

  4. 实现自定义CheckBox样式

    实现自定义CheckBox样式 input[type=checkbox] {position: absolute;top: 5px;left: 10px;width: 30px;height: 30p ...

  5. 微信小程序自定义checkbox样式

    微信小程序自定义checkbox样式 checkbox .wx-checkbox-input{width:16px;height:16px;} checkbox .wx-checkbox-input. ...

  6. Android之自定义checkbox样式

    大部分情况下,我们在UI中并不采用Android自带的checkbox复选框样式,这时候就需要我们自定义自己的checkbox. 首先找两张checkbox背景图片,比如下图样子的: 然后在drawa ...

  7. html更改checkbox样式,html自定义checkbox样式

    1.原理 就是将浏览器原生checkbox隐藏,对label进行相关操作.因为label和checkbox时绑在一起的,所以点击label就会选中 2.实现效果 图片.png 3.代码 提供一种 图片 ...

  8. 【CSS】自定义checkbox样式

    修改原生checkbox样式. 效果 原理 1.利用CSS3属性 appearance. 该属性(强制)更改(改变)默认(原生)样式. Firefox 支持替代的 -moz-appearance 属性 ...

  9. CSS3特效-自定义checkbox样式

    前言: 在实际开发过程中,大多数时候都不会用原生的checkbox样式,因为太丑了, 如果我们不用任何ui库的话, 就要手动写一个了, 原理就是将默认的checkbox 的input标签隐藏掉, 然后 ...

最新文章

  1. np.vstack()和np.hstack()
  2. 与http协作的web服务器、http首部(第五章、第六章)
  3. java自动递增前缀式和后缀式区别
  4. 【若依(ruoyi)】表格图片预览功能图片超宽、超高问题
  5. python猜数字1001untitled_ML - Python 基础
  6. 文件系统位于服务器,如何访问hadoop文件系统上的文件,该文件系统位于与本地计算机不同的服务器上?...
  7. 42 MM配置-采购-条件-定义工厂层的条件控制
  8. 2017 Q1网络安全市场报告:未来5年,全球网络安全支出将超过1万亿美元
  9. 修改mysql root的秘密
  10. 和秋叶一起学PPT之绘制表格(课时七)
  11. Building a Hypermedia-Driven RESTful Web Service
  12. android客户端同php服务端进行XML/JSON通信
  13. 计算机常用英语词汇及读音,程序员相关常见英文单词的正确读法
  14. 博奥导出工程项目电子表格_博奥造价软件导出excel表格无数据原因-2015年基础教育年报导出的电子表格没有数据,什么原因?...
  15. 微信开发笔记:生成带参数的公众号二维码
  16. 《微信小程序》微信小程序用java后台连接数据库进行操作。
  17. 《 编程导论——以Python为舟》学习笔记(一)
  18. UDC分类号查询(转载)
  19. 希希的多项式(推递推式)
  20. c语言模拟洛伦兹吸引子,洛伦兹吸引子相图的简易实现.pdf

热门文章

  1. 合成生物学背景下的先进发酵技术论坛
  2. php熊掌号文章不显示,如何在熊掌号提交全站文章
  3. kaggle-泰坦尼克号Titanic-3
  4. oracle clob导入mysql_Oracle数据库中包含CLOB字段表的导出和导入
  5. u盘linux xp双系统安装教程视频,从U盘安装Linux 与XP形成双系统
  6. EMCC 删除配置错误的数据库信息 以及修改度量METRICS
  7. 【笔记】Kibana安装并结合Elasticsearch使用
  8. 【C++】递归调用——难点揭秘
  9. CG动画制作——实训项目前期工作(四)
  10. 土木工程--钢筋下料软件