と呼ばれるものPens
は確かにありませんが、それを見つけられないのはあまりにも奇妙です. 本当に不在なのか、それとも盲目なのか?
(私は便利なクラスを探しているだけです-たとえば、Colors.Red
ありBrushes.Red
ますが、ペンの場合は最短のようですnew Pen(Brushes.Red, 1)
)
a は1 つのプロパティではなく、aと a の両方によって識別されるため、関連付けられたPens
クラスはありません。Pen
Brush
Thickness
標準的なペンのセットが必要な場合 (ある程度の太さに基づく)、独自のペンを作成する必要があります。もう 1 つの方法は、適切なペンを提供するコード ジェネレーターを作成することです。
Pen
for each defaultを追加するクラスの例を次に示します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;
}
}
Pens
冗長になるため、クラスはありません。(あなたは正しいですがColors
、Brushes
やや冗長でもあります。)
なんで?では、ペンとは何かについて考えてみてください。そのプロパティは、ストローク (または:太さ) と色 (または:ブラシ) によって記述できます。したがって、Pen Constructor(Brush, double)があります。