关闭

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

1066人阅读 评论(0) 收藏 举报

常用的渐变方法对比如下

界面预览:

 

程序如下:

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:116229次
    • 积分:1690
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:12篇
    • 译文:2篇
    • 评论:98条
    文章分类
    软件下载