C# PictureBox 繪圖:使用獨立方法的高效技巧
在 C# 窗體應用程式中,可以在 PictureBox 控制項上繪製自訂圖形。然而,用戶在嘗試透過單獨的方法執行此操作時可能會遇到問題。
問題:
使用者可能想要建立一個方法來方便地在 PictureBox 上繪製圓圈,但發現該方法無法產生預期結果。問題方法初始化位圖、圖形物件和用於繪製圓圈的畫筆。但是,當在 PictureBox 的 Paint 事件處理程序中呼叫時,它無法正確繪製圓圈。
解:
要有效地使用單獨的方法在 PictureBox 上繪圖,務必明確目標是在 PictureBox 顯示的圖像中繪圖,還是直接在控製本身繪圖。
方法一:直接在控制上繪圖
要直接在控制項上繪圖(不影響圖片),請使用 PictureBox 的 Paint 事件處理程序,如下所示:
<code class="language-csharp">private void pictureBox2_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44)); }</code>
在這種情況下,繪圖是持久的,圖形與控制項綁定,遵循控制項的任何大小調整或移動。
方法二:在影像中繪圖
要在 PictureBox 顯示的圖像中繪圖,請建立一個單獨的方法,並使用從 PictureBox 的 Image 屬性獲得的 Graphics 物件進行繪圖。
<code class="language-csharp">void drawIntoImage() { using (Graphics G = Graphics.FromImage(pictureBox1.Image)) { G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44)); } pictureBox1.Refresh(); }</code>
繪圖完成後,呼叫 PictureBox 的 Refresh() 方法來更新顯示。在這種情況下,圖形對影像來說是持久的,並且會受到影像任何縮放或變換的影響。
以上是如何在 C# 中使用單獨的方法在 PictureBox 上有效率地繪圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!