没有一个叫Pens
,这是肯定的,但是找不到它就太奇怪了。是真的没有,还是我瞎了?
(我只是在寻找一个方便的类 - 例如,Colors.Red
和 Brushes.Red
就在那里,但对于钢笔来说,最短的似乎是 新笔(Brushes.Red, 1)
)
最佳答案
没有关联的 Pens
类,因为 Pen
由 Brush
and a Thickness
标识。而不仅仅是一项属性(property)。
如果您需要一套标准笔(基于一定的厚度),那么您将必须创建自己的笔。另一种方法是创建一个代码生成器来提供适当的笔。
下面是一个为每个默认 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;
}
}
关于wpf - WPF中是否有一个 "Pens"类来补充 "Brushes"和 "Colors"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8650875/