6

と呼ばれるものPensは確かにありませんが、それを見つけられないのはあまりにも奇妙です. 本当に不在なのか、それとも盲目なのか?

(私は便利なクラスを探しているだけです-たとえば、Colors.RedありBrushes.Redますが、ペンの場合は最短のようですnew Pen(Brushes.Red, 1)

4

2 に答える 2

1

a は1 つのプロパティではなく、aと a の両方によって識別されるため、関連付けられたPensクラスはありません。PenBrushThickness

標準的なペンのセットが必要な場合 (ある程度の太さに基づく)、独自のペンを作成する必要があります。もう 1 つの方法は、適切なペンを提供するコード ジェネレーターを作成することです。

Penfor 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;
    }
}
于 2011-12-28T01:43:26.847 に答える
1

Pens 冗長になるため、クラスはありません。(あなたは正しいですがColorsBrushesやや冗長でもあります。)

なんで?では、ペンとは何かについて考えてみてください。そのプロパティは、ストローク (または:太さ) と色 (または:ブラシ) によって記述できます。したがって、Pen Constructor(Brush, double)があります。

于 2011-12-28T02:00:34.060 に答える