2009-06-18 20 views

Respuesta

13

Si lo que desea es un cepillo sólido con un color aleatorio, puede intentar esto:

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

La primera vez que veo a alguien usando byte.MaxValue ... – sloth

1

Una forma obvia es generar un número aleatorio y luego elegir el pincel correspondiente.

2

recomiendo coger una lista de cepillos suficientes muestras, y seleccionando al azar a partir de ahí.

El mero hecho de obtener un color aleatorio arrojará colores terribles, y podría configurar fácilmente una lista de quizás 50 colores que luego podría usar cada vez que necesite una al azar.

3

para WPF, utilizar la reflexión:

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

Quiere System.Drawing.Brush – jjxtra

+0

Esto era útil para mí. – Tony

Cuestiones relacionadas