没有一个叫Pens
,这是肯定的,但是找不到它太奇怪了。它真的缺席了,还是我失明了?
(我只是在寻找一个便利课 - 例如,Colors.Red
和Brushes.Red
就在那里,但是对于笔来说,最短的似乎是new Pen(Brushes.Red, 1)
)
答案 0 :(得分:1)
没有相关联的Pens
课程,因为Brush
and a Thickness
而非{{3}}同时识别Pen
。
如果您需要一套标准笔(基于某种厚度),那么您将不得不创建自己的标准笔。另一种方法是创建一个代码生成器来提供适当的笔。
以下是为每个默认Pen
添加Brush
的类的示例:
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;
}
}
答案 1 :(得分:1)
没有 Pens
类,因为它是多余的。(虽然你是对的:Colors
和Brushes
也有些多余。)
为什么呢?好吧,想想一下笔是什么:它的属性可以用(或:厚度)和颜色(或:画笔)的笔画来描述。因此,有Pen Constructor(Brush, double)。