gpt4 book ai didi

c# - 如何根据 wpf 中的值使特定颜色变暗或变亮?

转载 作者:太空狗 更新时间:2023-10-29 17:46:48 24 4
gpt4 key购买 nike

我正在开发 wpf 应用程序。我在 C# 中有 Color 对象的实例。假设我有一个红色 Color 对象的实例,即 Color c = Color.FromArgb(255,255,0,0) 现在假设我有一个值,范围从 1 到 10。所以基于这个值我想要更改“c”对象的颜色。我想要 1 的浅红色和 10 的深红色。随着值从 1 增加,浅红色变成深色。我如何在 C# 中为 wpf 应用程序执行此操作?您能否提供我可以解决上述问题的任何代码或链接?

最佳答案

您可以尝试简单地将红色、绿色和蓝色分量乘以某个系数。

public static Color ChangeLightness(this Color color, float coef)
{
return Color.FromArgb((int)(color.R * coef), (int)(color.G * coef),
(int)(color.B * coef));
}

或者,如果您想使用 1 到 10 之间的整数值而不是系数:

private const int MinLightness = 1;
private const int MaxLightness = 10;
private const float MinLightnessCoef = 1f;
private const float MaxLightnessCoef = 0.4f;

public static Color ChangeLightness(this Color color, int lightness)
{
if (lightness < MinLightness)
lightness = MinLightness;
else if (lightness > MaxLightness)
lightness = MaxLightness;

float coef = MinLightnessCoef +
(
(lightness - MinLightness) *
((MaxLightnessCoef - MinLightnessCoef) / (MaxLightness - MinLightness))
);

return Color.FromArgb(color.A, (int)(color.R * coef), (int)(color.G * coef),
(int)(color.B * coef));
}

关于c# - 如何根据 wpf 中的值使特定颜色变暗或变亮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12894605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com