2009-06-18 15 views

Répondre

13

Si vous voulez juste une brosse solide avec une couleur aléatoire, vous pouvez essayer ceci:

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

première fois que je vois quelqu'un en utilisant byte.MaxValue ... – sloth

1

Une façon évidente est de générer un nombre aléatoire, puis de choisir le pinceau correspondant.

2

Je suggère obtenir une liste des brosses suffisamment d'échantillons, et en sélectionnant au hasard à partir de là.

Obtenir simplement une couleur aléatoire produira des couleurs terribles, et vous pourriez facilement mettre en place une liste de peut-être 50 couleurs que vous pourriez ensuite utiliser chaque fois que vous en avez besoin d'un aléatoire.

3

Pour WPF, utilisez la réflexion:

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

Il veut System.Drawing.Brush – jjxtra

+0

C'était utile pour moi. – Tony