在我的简单WPF应用程序中,我使用常规的CheckBox控件。看起来我可以控制背景和前景。前景属性控制复选框旁边的文本,但不控制复选框。默认情况下,背景是白色,我的前景与白色非常接近,因为我有一个黑暗的窗体背景。
当我在我的开发Windows 7机器上运行应用程序时,复选框的勾号是黑色的。在Win XP计算机上,勾号是绿色的。但是,在另一台Win XP机器上,勾号是不可见的,因为它是白色的背景上的白色。
我的问题是“如何控制我的复选框勾号的颜色?”。
在使用“Windows Classic”主题或远程桌面的 Win XP 上,复选框的圆点符号会采用整个复选框的前景色。
<CheckBox Foreground="White" Content="My Text" />
我通过更改以下代码来解决了这个问题:
<CheckBox>
<Label Foreground="White">My Text</Label>
</CheckBox>
您需要覆盖 CheckBox 的 ControlTemplate。
另外,我认为您可以定义一个样式,该样式定义了一个触发器,根据您的要求更改颜色。由于它很有趣,我会尝试并稍后发布示例。
编辑:算了,CheckBox使用BulletChrome进行一些内部渲染,并且不公开任何有趣的属性可用于挂钩。