如何获得与皮肤的背景色相关的ForeColor?

当您将SimpleButton.Appearance.BackColor属性设置为DX Skin颜色(@Danger@Question@Success@Primary或{{1} },如图所示):

如何获得与皮肤的背景色相关的ForeColor?

在运行时使用适当的颜色评估@Info属性(如果肤色太暗,则使用Color.White;如果肤色太亮,则使用Color.Black ):

黑暗SimpleButton.Appearance.ForeColor

如何获得与皮肤的背景色相关的ForeColor?

浅色@Success

如何获得与皮肤的背景色相关的ForeColor?

如何获得在运行时评估的@Success

我尝试获取ForeColorSimpleButton.ForeColorSimpleButton.Appearance.ForeColor(我正在尝试在SimpleButton.Appearance.GetForeColor(e.GraphicsCache)事件中获取此颜色),但始终为CustomDraw

jidushijie 回答:如何获得与皮肤的背景色相关的ForeColor?

我最终根据this implementation of the W3C standard使用了这种扩展方法,并根据modifications的测试进行了一些Miral的测试:

public static Color GetContrastColor(this Color color)
{
    return (color.R * 0.299M) + (color.G * 0.587M) + (color.B * 0.114M) > 149 ? 
        Color.Black : 
        Color.White;
}
,

DevExpress.LookAndFeel.DXSkinColors.ForeColors.Information属性应为信息/成功着色提供ForeColor。

本文链接:https://www.f2er.com/3148446.html

大家都在问