簡體   English   中英

從C#中的Brushes集合中選擇隨機畫筆的最佳方法是什么?

[英]What is the best way to pick a random brush from the Brushes collection in C#?

從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種顏色的列表,然后您可以在每次需要隨機顏色時使用這些顏色。

一種顯而易見的方法是生成一個隨機數,然后選擇相應的畫筆。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM