我想创建一个行为与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更改图像源-您应该能够从那里建立图像。

07-26 00:31