Мне нужен был выбор цвета из некоторой палитры, и я обнаружил подходящий список в пакете SkiaSharp, где определена структура SKColors, перечисляющая статические значения цветов.
Вот такой список:
1 2 3 4 5 6 7 8 9 |
namespace SkiaSharp { public struct SKColors { public static SKColor AliceBlue = new SKColor(4293982463u); public static SKColor AntiqueWhite = new SKColor(4294634455u); ... } } |
Я хотел получить произвольный цвет отличный от черного.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
static public SKColor GetRandomColor() { // читаем массив полей объекта struct SKColors FieldInfo[] colorsList = typeof(SKColors).GetFields(); SKColor color = new SKColor(); Random rnd = new Random(); while (true) { int index = rnd.Next(0, colorsList.Length - 1); // проверяем имя свойства if (colorsList[index].Name != "Black" && colorsList[index].Name != "Empty") { // а так можно прочитать его значение color = (SKColor)(colorsList[index].GetValue(null)); break; } } return color; } |