Quel est le meilleur moyen de choisir un pinceau au hasard dans la collection Pinceaux en C #?

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

  •  06-07-2019
  •  | 
  •  

Question

Quel est le meilleur moyen de choisir un pinceau au hasard dans la collection System.Drawing.Brushes en C #?

Était-ce utile?

La solution

Si vous voulez juste un pinceau solide avec une couleur aléatoire, essayez 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));

Autres conseils

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

Je suggère d’obtenir une liste d’échantillons de pinceaux en nombre suffisant et de les sélectionner au hasard à partir de là.

Le simple fait d’obtenir une couleur aléatoire produit des couleurs terribles et vous pouvez facilement créer une liste de 50 couleurs que vous pourrez ensuite utiliser chaque fois que vous en aurez besoin.

Une méthode évidente consiste à générer un nombre aléatoire, puis à sélectionner le pinceau correspondant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top