在我的简单WPF应用程序中,我使用常规的CheckBox控件。看起来我可以控制背景和前景。 Foreground属性控制复选框旁边的文本,但不控制复选标记。默认情况下,背景为白色,我的前景非常接近白色,因为我有一个黑色的窗体背景。
当我在开发Windows 7计算机上运行应用程序时,复选标记为黑色。在Win XP计算机上,复选标记为绿色。但是在另一台Win XP机器上,复选标记是不可见的,因为它是白色的白色。
我的问题是“如何控制复选框复选标记的颜色?”。
答案 0 :(得分:17)
此问题发生在使用“Windows Classic”主题或使用远程桌面的Win XP上。 复选框的项目符号复选标记为整个CheckBox采用前景色的颜色。
<CheckBox Foreground="White" Content="My Text" />
我可以通过更改以下代码来解决此问题:
<CheckBox>
<Label Foreground="White">My Text</Label>
</CheckBox>
答案 1 :(得分:3)
您需要覆盖CheckBox的ControlTemplate。
MSDN上的答案 2 :(得分:0)
或者,我认为你可以定义一个样式来定义一个可以根据需要改变颜色的触发器。因为它很有趣,我会试一试并稍微发布一个样本。
编辑:没关系,CheckBox使用BulletChrome,它在内部进行一些渲染,并且不会暴露任何可用于挂钩的有趣属性。