我可以使用哪些GDI方法来绘制下图中所示的蓝色形状?中心必须是透明的。

发布于 2010-03-31 05:07:05
有许多方法,但您可能希望使用以下方法:
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))..。
发布于 2010-03-31 05:06:13
我假设这里是GDI+,也就是System.Drawing命名空间。
最好的方法是查看System.Drawing.Drawing2d.GraphicsPath类:
http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.graphicspath.aspx
你需要确保关闭路径才能获得中空效果。
发布于 2010-03-31 05:32:21
使用位图绘制它不是更容易吗?无论如何,这就是它们的用途:)。
https://stackoverflow.com/questions/2548709
复制相似问题