禁用文本的系统颜色是啥?
Posted
技术标签:
【中文标题】禁用文本的系统颜色是啥?【英文标题】:What is the system color of disabled text?禁用文本的系统颜色是什么? 【发布时间】:2011-12-07 16:06:26 【问题描述】:我有一个没有禁用/启用文本支持的控件,因此我需要将其构建到其中。
问题很简单:如果我想选择正确的系统颜色,以便该控件的禁用文本颜色与相邻禁用标签的颜色相同,我应该选择哪种系统颜色?我试了几个,都不对,要么太亮,要么太暗。
换句话说,假设存在 ForeColor 属性,我应该在这里写什么:
myDefunctLabel.ForeColor = SystemColors.???;
【问题讨论】:
禁用的文本不是有某种阴影效果,因此不仅仅是一种颜色吗?至少我记得在旧版本的 Windows 中是这样的。 我这里没有类似的东西。无论如何,它比旧的“默认”有点好,旧的“默认”是禁用的控件仍会显示为纯黑色。我会继续研究这个并在更多的计算机上测试它,但我将从亚当的答案 ControlDark 开始。 如果 SystemColors.GrayText 不是您期望的颜色,那是因为您当前的主题对它的定义不同。见blogs.msdn.com/b/wpf/archive/2010/11/30/… 【参考方案1】:SystemColors.ControlDark
在我的屏幕上看起来不错。这是来自实际尝试它们。我尝试了大多数其他的,但阴影是错误的。
但根据文档,GrayText
是您需要的。请记住,我在启用 Aero 的 Windows 7 上尝试了我的示例,但不确定屏幕主题是否与此处的颜色混在一起。
【讨论】:
我同意ControlDark
也优于 GrayText
- 在 Windows 7 上禁用 Aero(基本主题)【参考方案2】:
您正在寻找SystemColors.GrayText。
【讨论】:
嗯,这意味着某处有东西可以覆盖它。该颜色比附近的禁用标签稍暗。但我会坚持下去,弄清楚为什么我的标签会更轻:) SystemColors.ControlDark 对我有用,我尝试了 GrayText,但它看起来关闭了。这并不是说这不是正确答案,只是颜色看起来不同。 @Lasse 根据 Paint.NET 中的颜色选择器,ControlDark 与按像素禁用相同。 MSDN 文档并不支持这一点。 它在我的屏幕上看起来很正确。 可能表明我应该关闭这个问题,因为它过于本地化,但无论如何。我不喜欢审核我自己的内容,所以如果你同意的话,也许可以打个旗子。 根据文档,这个答案是正确的 - 只是如果您使用这种颜色,您的控件将与使用不同颜色的 Windows 控件不匹配。【参考方案3】:System.Drawing.SystemColors.GrayText 应该是它。
【讨论】:
【参考方案4】:SystemColors.Control 可能会给出您需要的颜色,或者可能是this
【讨论】:
以上是关于禁用文本的系统颜色是啥?的主要内容,如果未能解决你的问题,请参考以下文章