【问题标题】:WPF Pen DrawingVisualWPF 钢笔绘图可视化
【发布时间】:2012-07-17 07:01:57
【问题描述】:

我正在使用 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 覆盖)。

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

谢谢。

【问题讨论】:

    标签: wpf stroke


    【解决方案1】:

    你可以简单地画两次矩形,先用钢笔,然后用画笔:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-19
        • 2010-09-30
        • 1970-01-01
        • 1970-01-01
        • 2015-07-03
        相关资源
        最近更新 更多