从C#中的Brushes集合中选择随机画笔的最佳方法是什么?

时间:2009-06-18 03:27:27

标签: c# collections select brush

从C#中的System.Drawing.Brushes集合中选择随机画笔的最佳方法是什么?

4 个答案:

答案 0 :(得分:13)

如果您只想要一个随机颜色的实心画笔,可以试试这个:

    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));

答案 1 :(得分:3)

对于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 :(得分:2)

我建议获取足够的样本画笔列表,并从那里随机选择。

仅仅获得随机颜色会产生可怕的颜色,您可以轻松设置50种颜色的列表,然后您可以在每次需要随机颜色时使用这些颜色。

答案 3 :(得分:1)

一种显而易见的方法是生成一个随机数,然后选择相应的画笔。