代码之家  ›  专栏  ›  技术社区  ›  Judah Gabriel Himango

WPF复选框,如StackOverflow的“接受答案”复选框

  •  3
  • Judah Gabriel Himango  · 技术社区  · 14 年前

    我想创建一个自定义复选框,其行为与StackOverflow的“接受答案”复选框完全相同:

    alt text http://sstatic.net/so/img/vote-accepted-on.png

    alt text http://sstatic.net/so/img/vote-accepted.png

    也就是说,我只想在选中时显示单个图像,而不选中时显示单个不同的图像。我不在乎不确定状态。

    在WPF控制模板方面,我有点新手,所以我很难自定义复选框的控制模板,以便在选中/未选中时显示这些图像。有人能给我指个方向吗?

    1 回复  |  直到 14 年前
        1
  •  15
  •   itowlson    14 年前

    下面是一个简单的版本:

    <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>
    

    这是非常基本的,因为它不尊重像边缘和填充之类的东西,但这些可能对您来说现在不是必需的。关键是使用触发器和setter在ischecked为true时更改图像源——您应该能够从中构建。