沒有一個叫Pens
,這是肯定的,但它太奇怪了,沒有找到它。它真的缺席,還是我是盲人?是否有「筆」類來補充WPF中的「筆刷」和「顏色」?
(我只是在尋找一個方便的類 - 例如,Colors.Red
和Brushes.Red
是存在的,但對於筆最短似乎new Pen(Brushes.Red, 1)
)
沒有一個叫Pens
,這是肯定的,但它太奇怪了,沒有找到它。它真的缺席,還是我是盲人?是否有「筆」類來補充WPF中的「筆刷」和「顏色」?
(我只是在尋找一個方便的類 - 例如,Colors.Red
和Brushes.Red
是存在的,但對於筆最短似乎new Pen(Brushes.Red, 1)
)
因爲Pen
標識沒有關聯Pens
類由一個Brush
and a Thickness
而不只是一個屬性。
如果您需要一套標準筆(基於某種厚度),那麼您將不得不創建自己的。另一種方法是創建一個代碼生成器來提供合適的筆。
下面是其中用於每個默認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
類,因爲它是多餘的。(雖然你是對的:Colors
和Brushes
也有些多餘。)
爲什麼?那麼,想想一支筆是:它的屬性可以描述爲(或:厚度)和一種顏色(或:刷子)。因此,有一個Pen Constructor(Brush, double)。
我認爲他們都是完全相同的冗餘量,即:完全:)只是方便/詳細的方面。 – 2011-12-28 02:22:48