Qual è il modo migliore per scegliere un pennello a caso dalla raccolta System.Drawing.Brushes in C#?Qual è il modo migliore per scegliere un pennello a caso dalla raccolta Pennelli in C#?
6
A
risposta
13
Se si desidera solo una solida pennello con un colore a caso, si può provare questo:
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
Un modo ovvio è generare un numero casuale e quindi selezionare il pennello corrispondente.
2
Suggerisco di procurarsi un elenco di pennelli campione abbastanza, e in modo casuale selezionando da lì.
Solo un colore casuale produce colori terribili e puoi facilmente creare un elenco di circa 50 colori che potresti utilizzare ogni volta che ne hai bisogno uno casuale.
3
per WPF, utilizzare la riflessione:
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);
prima volta che vedo qualcuno che utilizza byte.MaxValue ... – sloth