C# PictureBox 圓形繪製:兩種有效的方法
本文解決了使用 C# 中的單獨方法在 PictureBox 中繪製圓形的挑戰。 我們將研究為什麼常見方法會失敗,並提出兩種可靠的替代方案。
為什麼您目前的方法可能會失敗
嘗試將 PictureBox 控制項上的直接繪製與單獨方法中的影像操作結合會產生不一致。這種混合方法常常會帶來意想不到的結果。
方法一:透過Paint
活動直接繪畫
要直接在 PictureBox 上進行持久繪圖,請利用 Paint
事件。 PaintEventArgs
提供了一個用於繪圖的 Graphics
物件。 此方法非常適合直接與 PictureBox 關聯的動態更新。
<code class="language-csharp">private void pictureBox1_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44)); }</code>
方法二:繪製到PictureBox的圖片中
或者,在 PictureBox 的圖像本身上進行繪製。 使用 Graphics
從 pictureBox1.Image
建立一個 Graphics.FromImage
物件。 在此 Graphics
物件上繪製形狀,然後呼叫 pictureBox1.Refresh()
更新顯示。即使調整 PictureBox 大小或重新繪製,此方法也能保持繪圖。
<code class="language-csharp">void DrawCircleOnImage() { using (Graphics G = Graphics.FromImage(pictureBox1.Image)) { G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44)); // ... other drawing operations ... } pictureBox1.Refresh(); }</code>
選出正確的方法
Paint
事件處理程序提供了一種直接的、受控制約束的方法,而繪製到圖像中提供了一種更持久的解決方案,可以在 PictureBox 重繪後繼續存在。 選擇最適合您的應用程式需求和所需繪圖行為的方法。 兩種方法都允許對您的繪圖進行廣泛的自訂和修改。
以上是如何在 C# 中使用外部方法在 PictureBox 中有效率地繪製圓形?的詳細內容。更多資訊請關注PHP中文網其他相關文章!