WPF 自定义CheckBox样式
引:
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样式相关推荐
- 自定义checkbox样式
通过选中时添加背景图片自定义CheckBox样式 效果: CSS样式: <style type="text/css>label {width: 10%;display: flex ...
- php复选框样式,如何自定义checkbox样式?附代码
本篇文章给大家带来的内容是关于如何自定义checkbox样式?附代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 修改原生checkbox样式. 效果 原理 1.利用CSS3属性 ...
- android自定义checkbox样式,自定义CheckBox样式
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 自定义样式 自定义选择器效果 自定义素材 ...
- 实现自定义CheckBox样式
实现自定义CheckBox样式 input[type=checkbox] {position: absolute;top: 5px;left: 10px;width: 30px;height: 30p ...
- 微信小程序自定义checkbox样式
微信小程序自定义checkbox样式 checkbox .wx-checkbox-input{width:16px;height:16px;} checkbox .wx-checkbox-input. ...
- Android之自定义checkbox样式
大部分情况下,我们在UI中并不采用Android自带的checkbox复选框样式,这时候就需要我们自定义自己的checkbox. 首先找两张checkbox背景图片,比如下图样子的: 然后在drawa ...
- html更改checkbox样式,html自定义checkbox样式
1.原理 就是将浏览器原生checkbox隐藏,对label进行相关操作.因为label和checkbox时绑在一起的,所以点击label就会选中 2.实现效果 图片.png 3.代码 提供一种 图片 ...
- 【CSS】自定义checkbox样式
修改原生checkbox样式. 效果 原理 1.利用CSS3属性 appearance. 该属性(强制)更改(改变)默认(原生)样式. Firefox 支持替代的 -moz-appearance 属性 ...
- CSS3特效-自定义checkbox样式
前言: 在实际开发过程中,大多数时候都不会用原生的checkbox样式,因为太丑了, 如果我们不用任何ui库的话, 就要手动写一个了, 原理就是将默认的checkbox 的input标签隐藏掉, 然后 ...
最新文章
- np.vstack()和np.hstack()
- 与http协作的web服务器、http首部(第五章、第六章)
- java自动递增前缀式和后缀式区别
- 【若依(ruoyi)】表格图片预览功能图片超宽、超高问题
- python猜数字1001untitled_ML - Python 基础
- 文件系统位于服务器,如何访问hadoop文件系统上的文件,该文件系统位于与本地计算机不同的服务器上?...
- 42 MM配置-采购-条件-定义工厂层的条件控制
- 2017 Q1网络安全市场报告:未来5年,全球网络安全支出将超过1万亿美元
- 修改mysql root的秘密
- 和秋叶一起学PPT之绘制表格(课时七)
- Building a Hypermedia-Driven RESTful Web Service
- android客户端同php服务端进行XML/JSON通信
- 计算机常用英语词汇及读音,程序员相关常见英文单词的正确读法
- 博奥导出工程项目电子表格_博奥造价软件导出excel表格无数据原因-2015年基础教育年报导出的电子表格没有数据,什么原因?...
- 微信开发笔记:生成带参数的公众号二维码
- 《微信小程序》微信小程序用java后台连接数据库进行操作。
- 《 编程导论——以Python为舟》学习笔记(一)
- UDC分类号查询(转载)
- 希希的多项式(推递推式)
- c语言模拟洛伦兹吸引子,洛伦兹吸引子相图的简易实现.pdf