我的DataGrid中有一个DataGridCheckBoxColumn,默认情况下它的foreColor和BackColor在Windows8中是黑色的。虽然,它在Windows7中很好。
我很生气地找到了一个关于如何改变复选标记的前景色的解决方案。
请帮助.....
答案 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样式,并仅修改上述属性并将其替换为您想要的颜色/资源。