如何更改WPF复选框控件中复选标记的颜色?

如何更改WPF复选框控件中复选标记的颜色?,wpf,controltemplate,Wpf,Controltemplate,我有一个自定义模板复选框,我正在使用viewbox实现它(使用viewbox允许简单的缩放),我不知道如何更改选中/取消选中该复选框时显示的内容 我希望选中时复选标记为红色(不是最终外观,只是希望看到它工作) 我的复选框样式: 选择原始模板()。这是定义颜色的部分: <Path Visibility="Collapsed" Width="7" Height="7" x:Name="CheckMark" SnapsToDevicePixels=

我有一个自定义模板复选框,我正在使用viewbox实现它(使用viewbox允许简单的缩放),我不知道如何更改选中/取消选中该复选框时显示的内容

我希望选中时复选标记为红色(不是最终外观,只是希望看到它工作)

我的复选框样式:


选择原始模板()。这是定义颜色的部分:

<Path Visibility="Collapsed"
      Width="7"
      Height="7"
      x:Name="CheckMark"
      SnapsToDevicePixels="False"
      StrokeThickness="2"
      Data="M 0 0 L 7 7 M 0 7 L 7 0">
  <Path.Stroke>
    <SolidColorBrush Color="{DynamicResource GlyphColor}" />
  </Path.Stroke>
</Path>

对不起,对不起,再一次对不起。。。我想这就是你想要的:

<ControlTemplate TargetType="CheckBox">
  <Grid>
    <Path x:Name="Equis"
          Opacity="0"
          Stroke="Red"
          Fill="Red"
          Stretch="UniformToFill"
          StrokeThickness="20"
          Data="M 30,100 L 80,140 L 160,60"
          Margin="0,0,2,2" />
    <ContentPresenter Margin="4"
                      HorizontalAlignment="Left"
                      VerticalAlignment="Top" />
  </Grid>
  <ControlTemplate.Triggers>
    <Trigger Property="IsChecked"
             Value="true">
      <Setter TargetName="Equis"
              Property="Opacity"
              Value="1" />
    </Trigger>
    <Trigger Property="IsChecked"
             Value="false">
      <Setter TargetName="Equis"
              Property="Opacity"
              Value="0" />
    </Trigger>
  </ControlTemplate.Triggers>
</ControlTemplate>


很抱歉我的无知,但是你能把它放进去并发布,这样我就可以更好地了解你告诉我的内容吗?AGoodDisplayName:你说“我希望勾选时复选标记是红色的”默认模板使用我发布的代码来绘制复选标记。布拉姆:我猜当复选框的值为true时,“折叠”会被修改为“可见”。@nestroutro,很抱歉反应太晚了。直到今天我才看到你的编辑。同样有趣的是,我昨天自己发现了这一点,正如您在示例中所展示的那样,所以感谢您的回答。很酷的解决方案,但对我来说,在应用这种风格后,并不是每一次点击都会得到尊重-还有其他人有这个问题吗?
<ControlTemplate TargetType="CheckBox">
  <Grid>
    <Path x:Name="Equis"
          Opacity="0"
          Stroke="Red"
          Fill="Red"
          Stretch="UniformToFill"
          StrokeThickness="20"
          Data="M 30,100 L 80,140 L 160,60"
          Margin="0,0,2,2" />
    <ContentPresenter Margin="4"
                      HorizontalAlignment="Left"
                      VerticalAlignment="Top" />
  </Grid>
  <ControlTemplate.Triggers>
    <Trigger Property="IsChecked"
             Value="true">
      <Setter TargetName="Equis"
              Property="Opacity"
              Value="1" />
    </Trigger>
    <Trigger Property="IsChecked"
             Value="false">
      <Setter TargetName="Equis"
              Property="Opacity"
              Value="0" />
    </Trigger>
  </ControlTemplate.Triggers>
</ControlTemplate>