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中文网其他相关文章!