如何根据背景颜色确定禁用标签的颜色?

How is the color of a disabled label determined based on the background color?

我有一个自定义绘制的控件,我希望它的颜色与标准 Label 控件的颜色相匹配。但是,我无法确定 disabled 标签的颜色。下面的屏幕截图显示了具有三种不同背景的标签。是否可以获得绘制 Disabled 标签的颜色,以便我可以在我的自定义绘图中使用它?

来自 Label.OnPaint 使用 Reflector:

if (base.Enabled)
{
    TextRenderer.DrawText(e.Graphics, this.Text, this.Font, r, nearestColor, flags);
}
else
{
    Color foreColor = TextRenderer.DisabledTextColor(this.BackColor);
    TextRenderer.DrawText(e.Graphics, this.Text, this.Font, r, foreColor, flags);
}

其中 TextRenderer.DisabledTextColor:

internal static Color DisabledTextColor(Color backColor)
{
    Color disabledTextColor = SystemColors.ControlDark;
    if (ControlPaint.IsDarker(backColor, SystemColors.Control))
    {
        disabledTextColor = ControlPaint.Dark(backColor);
    }
    return disabledTextColor;
}