C#のBrushesコレクションからランダムなブラシを選択する最良の方法は何ですか?
-
06-07-2019 - |
質問
C#のSystem.Drawing.Brushesコレクションからランダムブラシを選択する最良の方法は何ですか?
解決
ランダムな色の単色のブラシが必要な場合は、これを試してください:
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));
他のヒント
WPFの場合、リフレクションを使用します:
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);
十分なサンプルブラシのリストを取得し、そこからランダムに選択することをお勧めします。
ランダムな色を取得するだけではひどい色になり、50色のリストを簡単に設定して、ランダムな色が必要になるたびに使用できます。
明らかな方法は、乱数を生成し、対応するブラシを選択することです。
所属していません StackOverflow