¿Cuál es la mejor manera de elegir un pincel aleatorio de la colección Pinceles en C #?

StackOverflow https://stackoverflow.com/questions/1010638

  •  06-07-2019
  •  | 
  •  

Pregunta

¿Cuál es la mejor manera de elegir un pincel aleatorio de la colección System.Drawing.Brushes en C #?

¿Fue útil?

Solución

Si solo quieres un pincel sólido con un color aleatorio, puedes probar 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));

Otros consejos

Para WPF, use 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);

Sugiero obtener una lista de suficientes pinceles de muestra y seleccionar al azar desde allí.

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top