首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> .NET 實例教學

.NET WinForms 控件繪製漸層背景完整教學

     編輯:.NET 實例教學

在指定控件上繪製線性漸層

透過覆寫 OnPaint 事件,使用 LinearGradientBrush 即可為任何 WinForms 控件(含 Form、Panel、UserControl)繪製專業級漸層背景,無需第三方套件。

完整程式碼

Private Fcolor As Color = Color.White           ' 起始顏色
Private Tcolor As Color = Color.FromArgb(213, 242, 250) ' 結束顏色
Private Direct As LinearGradientMode = LinearGradientMode.Vertical
Private g As Graphics

Private Sub Form_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
    g = e.Graphics
    Dim lb As New LinearGradientBrush(ClientRectangle, Fcolor, Tcolor, Direct)
    g.FillRectangle(lb, ClientRectangle) ' 填滿整個客戶區
    lb.Dispose() ' 釋放資源
End Sub

關鍵點解析

  • ClientRectangle:取得控件可繪製區域(不含邊框)。
  • LinearGradientMode:可選 Vertical、Horizontal、ForwardDiagonal、BackwardDiagonal。
  • 資源釋放:Brush 實作 IDisposable,用完應立即 Dispose 或包在 Using 區塊。

進階應用

  • 將顏色、方向暴露為屬性,設計時即可在屬性視窗調整。
  • 結合 ColorBlend 實現多色漸層(如金屬質感)。
  • 在 Resize 事件呼叫 Invalidate() 觸發重繪,避免縮放時殘留。

C# 版本

protected override void OnPaint(PaintEventArgs e) {
    base.OnPaint(e);
    using (var brush = new LinearGradientBrush(ClientRectangle, Color.White, Color.FromArgb(213,242,250), LinearGradientMode.Vertical))
        e.Graphics.FillRectangle(brush, ClientRectangle);
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved