Pens
と呼ばれるものはありませんが、それは確かですが、見つからないのはあまりにも奇妙です。それは本当に不在ですか、私は盲目ですか?WPFの "Brushes"と "Colors"を補完する "Pens"クラスはありますか?
(私はちょうど便利なクラスを探しています - 例えば、Colors.Red
とBrushes.Red
があるが、ペンのための最短はnew Pen(Brushes.Red, 1)
ように見える)
Pens
と呼ばれるものはありませんが、それは確かですが、見つからないのはあまりにも奇妙です。それは本当に不在ですか、私は盲目ですか?WPFの "Brushes"と "Colors"を補完する "Pens"クラスはありますか?
(私はちょうど便利なクラスを探しています - 例えば、Colors.Red
とBrushes.Red
があるが、ペンのための最短はnew Pen(Brushes.Red, 1)
ように見える)
Pen
が識別されるため、関連するPens
クラスがありませんただ1つのプロパティではなく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)があります。
私はそれらがまったく同じ量の冗長であると思います。つまり、完全に:)利便性と冗長性の面だけがあります。 –