Windows窗体:如何更改已禁用标签的字体颜色

mis*_*ark 11 winforms

我正在尝试为Label Control设置禁用的字体特征.我可以设置所有字体特征(大小,粗体等),但颜色被默认的窗口行为覆盖,这似乎是这两种颜色之一:

  • 如果背景颜色是透明的,则ForeColor与禁用TextBox的颜色相同.
  • 如果将背景颜色设置为其他任何颜色,则ForeColor为深灰色.

下图显示了行为 - 第1列是标签,第2列是文本框,第3列是组合框.

替代文字

编辑 - 解释图像:前两行是标签,文本框和组合框的默认样式.在后两行中,我将背景颜色设置为红色,将前景颜色设置为白色.Microsoft处理的禁用字体样式不一致.

Ric*_*gan 1

看一下ControlPaint.DrawStringDisabled方法;这可能会有帮助。我在重写自定义控件的 OnPaint 事件时使用了它。

ControlPaint.DrawStringDisabled(g, this.Text, this.Font, Color.Transparent,
                new Rectangle(CustomStringWidth, 5, StringSize2.Width, StringSize2.Height), StringFormat.GenericTypographic);
Run Code Online (Sandbox Code Playgroud)