几种渐变方法对比(含多种颜色水平渐变、中心至四周渐变等)

常用的渐变方法对比如下

界面预览:

几种渐变方法对比(含多种颜色水平渐变、中心至四周渐变等)_第1张图片 

程序如下:

Imports  System.Drawing
Imports  System.Drawing.Drawing2D

Public   Class form1

    
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        
Call Me.GradientFill1(Pic1)
        
Call Me.GradientFill2(Pic2)
        
Call Me.GradientFill3(Pic3)
        
Call Me.GradientFill4(Pic4)
    
End Sub


    
Private Sub GradientFill1(ByVal Control As Control)
        
Dim LineBrush As New LinearGradientBrush(Control.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)
        Control.CreateGraphics.FillRectangle(LineBrush, Control.ClientRectangle)
    
End Sub


    
Private Sub GradientFill2(ByVal Control As Control)
        
Dim path As New GraphicsPath
        path.AddRectangle(Control.ClientRectangle)

        
Dim pgb As New PathGradientBrush(path)

        pgb.CenterPoint 
= Point.op_Implicit(New Point(Control.Width / 2, Control.Height / 2))
        pgb.CenterColor 
= Color.White

        
Dim Colors() As Color = {Color.Red, Color.LightGreen, Color.Yellow, Color.Blue}
        pgb.SurroundColors 
= Colors
        Control.CreateGraphics.FillRectangle(pgb, Control.ClientRectangle)
    
End Sub


    
Private Sub GradientFill3(ByVal Control As Control)
        
Dim path As New GraphicsPath
        path.AddRectangle(Control.ClientRectangle)

        
Dim pgb As New PathGradientBrush(path)
        pgb.CenterPoint 
= Point.op_Implicit(New Point(Control.Width / 2, Control.Height / 2))

        
Dim Colors() As Color = {Color.Red, Color.LightGreen, Color.Yellow, Color.Blue}
        
Dim Positions() As Single = {00.30.61}

        
Dim cb As ColorBlend = New ColorBlend

        cb.Colors 
= Colors
        cb.Positions 
= Positions
        pgb.InterpolationColors 
= cb
        Control.CreateGraphics.FillRectangle(pgb, Control.ClientRectangle)
    
End Sub


    
Private Sub GradientFill4(ByVal Control As Control)
        
Dim Colors() As Color = {Color.Red, Color.LightGreen, Color.Yellow, Color.Blue}
        
Dim Positions() As Single = {00.330.661}
        
Dim cb As ColorBlend = New ColorBlend
        cb.Colors 
= Colors
        cb.Positions 
= Positions

        
Dim LineBrush As New LinearGradientBrush(Control.ClientRectangle, Color.White, Color.Black, LinearGradientMode.Horizontal)
        LineBrush.InterpolationColors 
= cb
        LineBrush.LinearColors 
= Colors
        Control.CreateGraphics.FillRectangle(LineBrush, Control.ClientRectangle)
    
End Sub


End Class


你可能感兴趣的:(Class,Path,button,colors)