0

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

当我用 Pen 画一个 DrawingVisual 时,比如说一个 Rectangle,如下所示:

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

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

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

在此处输入图像描述

因此,如果 Pen 的粗细太大以至于比 Rectangle 还要大,则 Rectangle 会消失(整个矩形都被 Stroke 覆盖)。

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

谢谢你。

4

2 回答 2

1

您可以简单地绘制 Rectangle 两次,首先使用 Pen,然后使用 Brush:

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 回答