我想创建一个行为与StackOverflow的“接受答案”复选框完全一样的自定义复选框:
alt text http://sstatic.net/so/img/vote-accepted-on.png
alt text http://sstatic.net/so/img/vote-accepted.png
也就是说,我只想在选中时显示一个图像,而在不选中时显示一个不同的图像。我不在乎不确定的状态。
关于WPF ControlTemplates,我还是个新手,因此我无法自定义CheckbBox的ControlTemplate以在选中/未选中时显示这些图像。有人可以指出我正确的方向吗?
最佳答案
这是一个简单的版本:
<ControlTemplate TargetType="CheckBox">
<Image Name="TickImage" Source="HollowTick.png" />
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="TickImage" Property="Source" Value="FilledTick.png" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
这是非常基本的,因为它不尊重边距和填充等内容,但是这些可能对您现在不是必需的。关键是在IsChecked为true时使用Trigger和Setter更改图像源-您应该能够从那里建立图像。