GraphicsPath AddLine创建意外路径

时间:2016-01-28 21:45:40

标签: vb.net system.drawing graphicspath

我正在尝试使用GraphicsPath绘制像文件一样的“文件夹”。

我创建路径的功能如下:

Public Function FolderRect(ByRef r As Rectangle) As System.Drawing.Drawing2D.GraphicsPath

    Dim p As New System.Drawing.Drawing2D.GraphicsPath

    Dim iTabWidth As Integer = 30
    Dim iTabHeight As Integer = 12

    With p
        Call p.AddLine(r.Left, r.Top, r.Left + iTabWidth, r.Top)
        Call p.AddLine(r.Left + iTabWidth, r.Top, r.Left + iTabWidth, r.Top + iTabHeight)
        Call p.AddLine(r.Left + iTabWidth, r.Top + iTabHeight, r.Right, r.Top + iTabHeight)
        Call p.AddLine(r.Right, r.Top + iTabHeight, r.Right, r.Bottom)
        Call p.AddLine(r.Right, r.Bottom, r.Left, r.Bottom)
        Call p.AddLine(r.Left, r.Bottom, r.Left, r.Top)

        Call p.CloseFigure()
    End With

    Return p

End Function

代码看起来对我来说,但结果不符合我的预期:

enter image description here

(我使用图像编辑器创建了“正确”版本。)

这可能是GraphicsPath中的一个错误吗?

这就是PathPoints的样子: enter image description here

这就是“r”的样子: enter image description here

1 个答案:

答案 0 :(得分:0)

图形路径几乎肯定是正确的。您可以通过查看图形路径的PathPoints属性来验证这一点。

绘制图形路径时可能会出现一些舍入错误。尝试使路径与目标位图的大小相同。