什么GDI方法我可以用来绘制下图中示出的蓝色形状?中心必须是透明的。

“替代文字”

有帮助吗?

解决方案

有多种方式,但是你可能需要使用以下内容:

FillRectangle
FillPolygon
DrawLine

因为它看起来像您的形状可以通过几行减少到一个矩形和两个多边形,然后概述

下面是我想的是一个非常简单的和硬编码例如:

Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) _
Handles MyBase.Paint
    Dim g As Graphics = e.Graphics

    g.FillRectangle(Brushes.Aqua, New Rectangle(10, 10, 10, 90))
    g.FillPolygon(Brushes.Aqua, New Point() { _
        New Point(10, 10), _
        New Point(20, 10), _
        New Point(40, 50), _
        New Point(30, 50)})
    g.FillPolygon(Brushes.Aqua, New Point() { _
        New Point(10, 100), _
        New Point(20, 100), _
        New Point(40, 50), _
        New Point(30, 50)})
    g.DrawLine(Pens.Black, New Point(10, 10), New Point(10, 100))
    g.DrawLine(Pens.Black, New Point(10, 100), New Point(20, 100))
    g.DrawLine(Pens.Black, New Point(20, 100), New Point(40, 50))
    g.DrawLine(Pens.Black, New Point(40, 50), New Point(20, 10))
    g.DrawLine(Pens.Black, New Point(20, 10), New Point(10, 10))

...

其他提示

林假设GDI +这里又名System.Drawing命名空间。

做的最好的事情是看System.Drawing.Drawing2d.GraphicsPath类:

http://msdn.microsoft.com /en-us/library/system.drawing.drawing2d.graphicspath.aspx

您需要确保您关闭路径,以获得镂空效果。

是不是很是更容易使用位图绘制呢?这是他们在做什么反正。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top