2009-06-18 1 views

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

prima volta che vedo qualcuno che utilizza byte.MaxValue ... – sloth

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

Vuole System.Drawing.Brush – jjxtra

+0

Questo è stato utile per me. – Tony