6

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

4

4 回答 4

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));
于 2009-06-18T03:36:51.770 回答
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);
于 2012-07-01T13:37:56.357 回答
2

我建议获取足够的示例画笔列表,并从中随机选择。

仅仅获得一种随机颜色会产生糟糕的颜色,您可以轻松设置一个可能有 50 种颜色的列表,然后每次需要随机颜色时都可以使用这些颜色。

于 2010-06-15T09:54:42.800 回答
1

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

于 2009-06-18T03:33:10.623 回答