Windows 表單的 PictureBox 控制項提供了一種顯示影像的便利方式。 然而,將自訂繪圖方法與 PictureBox 的 Paint
事件有效整合需要仔細考慮。本指南介紹如何將自訂繪圖邏輯與 Paint
事件處理程序無縫結合。
了解Paint
事件與自訂繪製方法
只要控制項需要重繪(例如,調整大小、影像變更),PictureBox 的 Paint
事件就會觸發。 您的自訂繪製方法(例如 Circle()
)封裝了繪圖邏輯,可能會傳回一個 Bitmap
物件。
整合策略
整合自訂繪製方法有兩種主要方法:
1。直接在控制上繪圖:
此方法使用 e.Graphics
事件處理程序中的 Paint
物件直接繪製到 PictureBox 上。 變更在重新繪製後會持續存在。
<code class="language-csharp">private void pictureBox1_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44)); // ... other drawing operations ... }</code>
2。繪製到影像中:
此方法修改 PictureBox 的底層 Image
屬性。 更改是持久的,因為它們改變了點陣圖本身。 使用Graphics.FromImage(pictureBox1.Image)
建立Graphics
物件進行繪圖,然後呼叫pictureBox1.Refresh()
更新顯示。
<code class="language-csharp">void drawIntoImage() { using (Graphics G = Graphics.FromImage(pictureBox1.Image)) { G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44)); // ... other drawing operations ... } pictureBox1.Refresh(); }</code>
選擇最佳方法
最佳方法取決於您的特定需求。 當您需要直接在 PictureBox 上進行即時、持久的變更時,直接繪圖非常適合。 當您想要修改底層點陣圖時,最好繪製到影像中,以確保即使在多次重新繪製後這些變更仍然保留。
以上是如何在 Windows 表單中將自訂繪製方法與 PictureBox 的繪製事件整合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!