现在的位置: 首页 > 综合 > 正文

用WPF自定义CheckBox的样式

2012年04月06日 ⁄ 综合 ⁄ 共 800字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.