Как лучше всего выбрать случайную кисть из коллекции System.Drawing.Brushes в С#?
Как лучше всего выбрать случайную кисть из коллекции Brushes в C#?
Ответы (4)
Если вам просто нужна сплошная кисть со случайным цветом, вы можете попробовать это:
Random r = new Random();
int red = r.Next(0, byte.MaxValue + 1);
int green = r.Next(0, byte.MaxValue + 1);
int blue = r.Next(0, byte.MaxValue + 1);
System.Drawing.Brush brush = new System.Drawing.SolidBrush(Color.FromArgb(red, green, blue));
person
jjxtra
schedule
18.06.2009
Для WPF используйте отражение:
var r = new Random();
var properties = typeof(Brushes).GetProperties();
var count = properties.Count();
var colour = properties
.Select(x => new { Property = x, Index = r.Next(count) })
.OrderBy(x => x.Index)
.First();
return (SolidColorBrush)colour.Property.GetValue(colour, null);
person
Hamiora
schedule
01.07.2012
Он хочет System.Drawing.Brush
- person jjxtra; 01.10.2012
Я предлагаю получить список достаточного количества образцов кистей и случайным образом выбрать из них.
Простое получение случайного цвета приведет к ужасным цветам, и вы можете легко настроить список, возможно, из 50 цветов, которые затем можно использовать каждый раз, когда вам нужен случайный цвет.
person
ANeves thinks SE is evil
schedule
15.06.2010
Очевидный способ — сгенерировать случайное число, а затем выбрать соответствующую кисть.
person
Community
schedule
18.06.2009