现在的位置: 首页 > 综合 > 正文

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

2013年10月12日 ⁄ 综合 ⁄ 共 2512字 ⁄ 字号 评论关闭

常用的渐变方法对比如下

界面预览:

 

程序如下:

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


抱歉!评论已关闭.