透過覆寫 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
Vertical、Horizontal、ForwardDiagonal、BackwardDiagonal。Brush 實作 IDisposable,用完應立即 Dispose 或包在 Using 區塊。ColorBlend 實現多色漸層(如金屬質感)。Resize 事件呼叫 Invalidate() 觸發重繪,避免縮放時殘留。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);
}