簡體   English   中英

是否有一個“筆”類來補充WPF中的“畫筆”和“顏色”?

[英]Is there a “Pens” class to complement “Brushes” and “Colors” in WPF?

沒有一個叫Pens ,這是肯定的,但是找不到它太奇怪了。 它真的缺席了,還是我失明了?

(我只是在尋找一個便利類 - 例如, Colors.RedBrushes.Red就在那里,但對於筆來說,最短的似乎是new Pen(Brushes.Red, 1)

沒有關聯的Pens類,因為PenBrushThickness識別,而不僅僅是一個屬性。

如果您需要一套標准筆(基於某種厚度),那么您將不得不創建自己的標准筆。 另一種方法是創建代碼生成器以提供適當的筆。

下面是一個為每個默認Brush添加Pen的類的示例:

public class DefaultPens
{
    private Dictionary<Brush, Pen> pens;

    public double Thickness
    {
        get;
        private set;
    }

    // used like defaultPens[Brushes.Red]
    public Pen this[Brush brush]
    {
        get { return this.pens[brush]; }
    }

    public DefaultPens(double thickness)
    {
        this.pens = typeof(Brushes).GetProperties(BindingFlags.Static)
                                   .Where(pi => pi.PropertyType == typeof(Brush))
                                   .Select(pi => pi.GetValue(null, null))
                                   .ToDictionary(
                                       b => b,
                                       b => new Pen(b, thickness));
        this.Thickness = thickness;
    }
}

沒有 Pens 類,因為它是多余的。 (雖然你是對的: ColorsBrushes也有些多余。)

為什么? 好吧,只要考慮一下筆是什么:它的屬性可以用(或: 厚度 )和顏色(或: 畫筆 )的筆划來描述。 因此,有一個Pen構造函數(Brush,double)

暫無
暫無

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

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