禁用文本的系统颜色是啥?

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

【讨论】:

以上是关于禁用文本的系统颜色是啥?的主要内容,如果未能解决你的问题,请参考以下文章

WPF系统颜色的符号名称?

Kivy:在kv中设置禁用按钮上的文本颜色

如何设置 xamarin 表单输入字段的禁用文本颜色?

textview中文本的默认颜色是啥?

Java 在禁用的文本字段中设置字体颜色

Android:使用主题/样式更改禁用文本的颜色?