2009-06-18 6 views

Antwort

13

Wenn Sie nur eine feste Bürste mit einer zufälligen Farbe möchten, können Sie dies versuchen:

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

erste Mal, dass ich jemanden mit sehen byte.MaxValue ... – sloth

1

Eine naheliegende Möglichkeit besteht darin, eine Zufallszahl zu generieren und dann den entsprechenden Pinsel auszuwählen.

2

Ich schlage vor, eine Liste mit genügend Probe Bürsten bekommen und von dort zufällig ausgewählt wird.

Lediglich eine zufällige Farbe zu erhalten, wird schreckliche Farben ergeben, und Sie könnten leicht eine Liste mit vielleicht 50 Farben erstellen, die Sie dann jedes Mal verwenden können, wenn Sie eine zufällige Farbe benötigen.

3

Für WPF verwenden Reflexion:

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

Er will System.Drawing.Brush – jjxtra

+0

Dies war nützlich für mich. – Tony