0

この質問に見られるように、WPF で同様の種類の線をたくさん描画しようとしていますが、違いは DrawingVisual オブジェクトの DrawingContext で描画する必要があることです。どうすればそれができますか?

4

1 に答える 1

0

上下の同じ点の間に 2 本の線を引く必要があります。下の線は太いペン、上の線は細いペンです。

Pen background = new Pen(Brushes.Black, 5);
Pen foreground = new Pen(Brushes.White, 3);

drawingContext.DrawLine(background, new Point(100, 100), new Point(200, 200));
drawingContext.DrawLine(foreground, new Point(100, 100), new Point(200, 200));

この線は、ペンの線のキャップも定義すると見栄えがよくなります。

Pen background = new Pen
{
    Brush = Brushes.Black,
    Thickness = 5,
    StartLineCap = PenLineCap.Round,
    EndLineCap = PenLineCap.Round
};

Pen foreground = new Pen
{
    Brush = Brushes.White,
    Thickness = 3,
    StartLineCap = PenLineCap.Round,
    EndLineCap = PenLineCap.Round
};

このような拡張メソッドで

public static class DrawingContextExtensions
{
    public static void DrawLine(this DrawingContext drawingContext,
        Pen background, Pen foreground, Point start, Point end)
    {
        drawingContext.DrawLine(background, start, end);
        drawingContext.DrawLine(foreground, start, end);
    }
}

1 回の呼び出しで描画を行うことができます。

drawingContext.DrawLine(background, foreground, new Point(100, 100), new Point(200, 200));
于 2012-04-20T16:52:42.177 に答える