0

WPF DrawingVisualとPenを使用していますが、問題が発生しました。

ペンでDrawingVisualを描くとき、​​たとえば、次のように長方形を描きます。

Pen StrokePen = new Pen();
StrokePen.Brush = Brushes.SkyBlue;
StrokePen.Thickness = 6;

DrawingVisual dv = new DrawingVisual
DrawingContext dc = dv.RenderOpen();
dc.DrawingRectangle(......., StrokePen, ......);
dc.Close();

ストロークの半分が次のように長方形を覆っていることがわかりました。

ここに画像の説明を入力してください

したがって、ペンの太さが大きすぎて長方形よりも大きくなると、長方形は消えます(長方形全体がストロークで覆われます)。

長方形に描画されたストローク(ペン)が長方形を覆わないように設定を調整できますか(長方形の辺を超えて描画するだけです)

ありがとうございました。

4

2 に答える 2

1

長方形を2回描画するだけで、最初はペンで、次にブラシで描画できます。

using (DrawingContext dc = dv.RenderOpen())
{
    ...
    dc.DrawingRectangle(null, StrokePen, ...); 
    dc.DrawingRectangle(FillBrush, null, ...);
    ....
}
于 2012-07-17T10:14:58.507 に答える
0

wpfでは、長方形の境界線がその内部コンテンツであるため、長方形の外側に強制する方法はありません。ただし、Pen.Thicknessを補正するために、長方形のサイズを調整できます。

于 2012-07-17T07:31:44.203 に答える