用WPF自定义CheckBox的样式

用WPF自定义CheckBox的样式

在网上search到的CheckBox自定义样式的例子很少,可能是由于这方面的需求不多,大多数情况下都是采用系统默认下的样式就OK。但是随着技术的不断革新,像CheckBox这样的传统外观,也许会在项目中拖你的后腿。这里,我在WPF中自定义了CheckBox的新样式,也许不能满足你的实际需求,但是重点在于方法,而不是效果。


如何修改CheckBox的样式,方法当然是修改CheckBox的模板。但是当你开始编辑CheckBox的模板时,会发现不知道如何修改CheckBox的那个勾。


看了模板中的结构,只发现BulletChrome,但是这个东东也修改不了那个勾。只好在网上继续search,终于发现了方法。

我们不能修改BulletChrome,那就只能替换它。基本方法就是用一个Border和一个Path来替换这个BulletChrome;然后在xaml中重新定义trigger。


其中“gou”是一个path对象,随你画成其他形状。

然后定义trigger,也就是当ischecked=true时,显示“gou”;ischecked=false时,隐藏“gou”。

<TriggerProperty="IsChecked" Value="false">

 <Setter TargetName="gou" Property="Visibility"Value="Hidden"/>

</Trigger>

<Trigger Property="IsChecked"Value="true">

 <Setter TargetName="gou" Property="Visibility"Value="Visible"/>

</Trigger>

这样就实现了文章开头的效果。其实未必一定用border+path的组合来替换BulletChrome,或者用border+image等等,有待发挥了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值