UserControl 建立 EllipseButton。OnPaint 繪製介面。OnMouseMove、OnMouseEnter、OnMouseLeave 實作動態效果。OnClick 處理非矩形點擊判定並觸發事件。System.Drawing.dll;若非 WinForms 專案需手動加入。using System.Drawing;(VS 多半自動完成)。public class EllipseButton : UserControl {
// 外觀屬性
public Color BorderColor { get; set; }
public Color ButtonBackColor { get; set; }
public Color HoverBorderColor { get; set; }
public Color HoverBackColor { get; set; }
public string Caption { get; set; }
// 狀態旗標
private bool bolMouseHoverFlag = false;
// ...
}
Graphics 類別封裝裝置內容(DC),提供:
SmoothingMode、InterpolationMode 等。DrawLine/FillRectangle/DrawPath…TranslateTransform、ScaleTransform、RotateTransform。所有圖形輸出最終皆導向此畫布,掌握其屬性與方法即掌握 GDI+ 繪圖靈魂。
protected override void OnPaint(PaintEventArgs e) {
base.OnPaint(e); // 必須!
// 繪圖邏輯...
}
參數 e.Graphics 即當前畫布;e.ClipRectangle 為需更新區域(本例暫不使用)。
完成了控件骨架、屬性、繪圖環境準備。**下一講將深入 OnPaint 實作細節**,構建橢圓路徑、填充描邊、文字排版,敬請期待!