如何更改DataGridCheckBoxColumn复选框复选标记颜色

时间:2014-08-08 06:39:26

标签: c# wpf xaml wpf-controls wpfdatagrid

我的DataGrid中有一个DataGridCheckBoxColumn,默认情况下它的foreColor和BackColor在Windows8中是黑色的。虽然,它在Windows7中很好。

我很生气地找到了一个关于如何改变复选标记的前景色的解决方案。

请帮助.....

1 个答案:

答案 0 :(得分:2)

Here是WPF复选框的完整原生模板。

您在寻找“GlyphColor”中的“Path.Stroke”中的代码如下:

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

从这里你至少有两个解决方案:

1)“GlyphColor”被绑定为动态资源,这意味着您可以更改它,它将立即反映复选框中标记的颜色变化。但是,有点可能,这些资源可能用于其他控件,所以它也会改变它们的颜色。

2)强力解决方案是通过将上述代码复制/粘贴到项目中来完全覆盖CheckBox样式,并仅修改上述属性并将其替换为您想要的颜色/资源。