用WPF自定义CheckBox的样式

来源:互联网 发布:手机app编程语言 编辑:程序博客网 时间:2024/05/01 20:18

用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等等,有待发挥了。


原创粉丝点击