Qual è il modo migliore per scegliere un pennello casuale dalla collezione di pennelli in C #?

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

  •  06-07-2019
  •  | 
  •  

Domanda

Qual è il modo migliore per scegliere un pennello casuale dalla collezione System.Drawing.Brushes in C #?

È stato utile?

Soluzione

Se vuoi solo un pennello solido con un colore casuale, puoi 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));

Altri suggerimenti

Per WPF, utilizzare reflection:

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

Suggerisco di ottenere un elenco di pennelli campione sufficienti e di selezionare casualmente da lì.

Il semplice fatto di ottenere un colore casuale produrrà colori terribili e potresti facilmente creare un elenco di forse 50 colori che potresti utilizzare ogni volta che ne hai bisogno di uno casuale.

Un modo ovvio è generare un numero casuale e quindi selezionare il pennello corrispondente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top