首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 入門教學:捲動視窗繪圖原理與實作(一)

     編輯:關於C語言

視窗區域概念

  • Size:包含標題列、邊框的完整視窗大小。
  • ClientSize / ClientRectangle:工作區大小 (不含標題列、邊框),繪圖座標系原點 (0,0) 位於工作區左上角。

範例:視窗 308×234,標題列 30、邊框 4 → 工作區 300×200。

文件超出工作區時的處理

若文件 (文本、圖形) 總高度 250px > 工作區 200px,部分內容將被遮蔽。需啟用捲動條。

啟用自動捲動條


this.AutoScrollMinSize = new Size(300, 250); // 文件邏輯大小

當 ClientSize 小於 AutoScrollMinSize 時,WinForms 自動顯示捲動條。

完整範例:捲動視窗繪製矩形與橢圓


public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.BackColor = Color.White;
        this.AutoScrollMinSize = new Size(300, 250); // 文件大小 300x250
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        Graphics g = e.Graphics;
        // 繪製矩形 (0,0) 200x150
        g.FillRectangle(Brushes.LightPink, 0, 0, 200, 150);
        // 繪製橢圓 (0,150) 300x100
        g.FillEllipse(Brushes.LightGreen, 0, 150, 300, 100);
    }
}

執行效果

  • 初始顯示文件左上角區域。
  • 拖曳捲動條可瀏覽完整 300×250 文件區域。
  • 繪圖座標系固定於文件邏輯座標,不受捲動位移影響 (由 WinForms 自動處理平移變換)。

關鍵點總結

  1. 設定 AutoScrollMinSize 定義文件邏輯大小。
  2. 在 OnPaint 中使用文件座標繪圖,無需手動計算捲動位移。
  3. WinForms 內部透過 Graphics.TranslateTransform 自動套用捲動位移。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved