如何绘制圆形渐变?

时间:2011-03-22 14:38:37

标签: vb.net winforms gdi+

如何在vb.net中绘制圆形渐变like this

A Red Circular Gradient

1 个答案:

答案 0 :(得分:4)

查看此great page。文章中的代码是在C#中。这是您感兴趣的代码的vb.net端口,并针对矩形填充进行更新:(基于文章的三角形填充样本。)

    Dim pgb As New PathGradientBrush(New Point() { _
        New Point(0, 0), _
        New Point(0, Me.ClientRectangle.Height), _
        New Point(Me.ClientRectangle.Width, Me.ClientRectangle.Height), _
        New Point(Me.ClientRectangle.Width, 0)})
pgb.SurroundColors = New Color() {Color.Red}
pgb.CenterColor = Color.Gray
e.Graphics.FillRectangle(pgb, Me.ClientRectangle)
pgb.Dispose()

这是另一种可能的解决方案:

Dim pth As New GraphicsPath()
pth.AddEllipse(Me.ClientRectangle)
Dim pgb As New PathGradientBrush(pth)
pgb.SurroundColors = New Color() {Color.Red}
pgb.CenterColor = Color.Gray
e.Graphics.FillRectangle(pgb, Me.ClientRectangle)

请注意,最后一段代码片段会在矩形内部绘制一个圆圈。如果希望圆形渐变填充整个矩形,则必须使用较大的矩形计算较大的椭圆路径。