Как нарисовать круговой градиент? - PullRequest
2 голосов
/ 22 марта 2011

Как нарисовать круговой градиент вот так в vb.net?

A Red Circular Gradient

1 Ответ

4 голосов
/ 22 марта 2011

Проверьте эту отличную страницу .Код в статье находится на 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)

Обратите внимание, что этот последний фрагмент кода нарисует круг, ограниченный внутри прямоугольника.Если вы хотите, чтобы круговой градиент заполнил весь прямоугольник, вам придется рассчитать больший эллиптический путь с большим прямоугольником.

...