我在Xamarin项目中使用此方法来生成随机颜色
Random random = new Random();
public string BoColor
{
get
{
return String.Format("#{0:X6}", random.Next(0x808080) & 0x7E7E7E);
}
}
但是我希望生成不带黑色的颜色,在这方面会有所帮助。
预先感谢您的支持。
答案 0 :(得分:0)
有很多可能的方法来实现这一目标。您可以开发这样的方法
static string generateColor()
{
Random random = new Random();
string color = string.Empty;
do
{
color = string.Format("#{0:X6}", random.Next(0x808080) & 0x7E7E7E);
}
while (color == "#000000");
return color;
}
答案 1 :(得分:0)
要扩展@Gaurang Dave所说的内容,您可以使用IsAlmostBlack(string color)
设置自己的阈值:
private static string GenerateColor()
{
Random random = new Random();
string color;
do
{
color = $"#{random.Next(0x808080) & 0x7E7E7E:X6}";
}
while (IsAlmostBlack(color));
return color;
}
private static bool IsAlmostBlack(string color)
{
// #XX0000
int red = int.Parse(color.Substring(1, 2), NumberStyles.HexNumber);
// #00XX00
int green = int.Parse(color.Substring(3, 2), NumberStyles.HexNumber);
// #0000XX
int blue = int.Parse(color.Substring(5, 2), NumberStyles.HexNumber);
// Checks if all values are under a certain value (here 50[decimal])
return red < 0x32 && green < 0x32 && blue < 0x32;
}
您当然也可以使用小数:
// Checks if all values are under a certain value (here 50[decimal])
return red < 50 && green < 50 && blue < 50;