Как лучше всего выбрать случайную кисть из коллекции Brushes в C #? - PullRequest
6 голосов
/ 18 июня 2009

Как лучше всего выбрать случайную кисть из коллекции System.Drawing.Brushes в C #?

Ответы [ 4 ]

13 голосов
/ 18 июня 2009

Если вам нужна сплошная кисть со случайным цветом, вы можете попробовать это:

    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));
3 голосов
/ 01 июля 2012

Для 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);
2 голосов
/ 15 июня 2010

Я предлагаю получить список достаточных образцов кистей и выбрать их случайным образом.

Простое получение случайного цвета приведет к ужасным цветам, и вы можете легко составить список из примерно 50 цветов, которые вы сможете использовать каждый раз, когда вам нужен случайный.

1 голос
/ 18 июня 2009

Очевидным способом является создание случайного числа, а затем выбрать соответствующую кисть.

...