WPF Pen DrawingVisual

时间:2012-07-17 07:01:58

标签: wpf stroke

我正在使用WPF DrawingVisual和Pen并遇到问题。

当我用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();

我发现中风的一半覆盖了矩形,如下所示:

enter image description here

因此,如果笔的粗细太大而使其大于矩形,则矩形将消失(整个矩形被笔划覆盖)。

我可以调整一些设置,以便在矩形上绘制的笔划(笔)不会覆盖矩形(仅绘制在矩形的两边以外)

谢谢。

2 个答案:

答案 0 :(得分:0)

在矩形的wpf边框是它的内部内容所以没有办法强迫它在矩形之外。但您可以调整矩形的大小以补偿Pen.Thickness。

答案 1 :(得分:0)

您可以简单地绘制两次矩形,首先使用Pen,然后使用画笔:

using (DrawingContext dc = dv.RenderOpen())
{
    ...
    dc.DrawingRectangle(null, StrokePen, ...); 
    dc.DrawingRectangle(FillBrush, null, ...);
    ....
}