C# 在以前的图形上绘制某些内容会导致质量低下

C# 在以前的图形上绘制某些内容会导致质量低下,c#,graphics,draw,C#,Graphics,Draw,在我的应用程序中,我画了一个蓝色箭头,过了一段时间,我需要将它的颜色更改为绿色,所以我用绿色笔再次绘制它。当用户单击某个东西时,箭头必须返回其原始颜色,因此我用蓝色笔再次绘制箭头。尽管我已经设置了.SmoothingMode=System.Drawing.Drawing2D.SmoothingMode.HighQuality,但所有这些都会产生一个像素化箭头。我不能使用clear on graphics,因为我在面板上绘制了几个形状。救命啊! 箭头是使用drawlines方法绘制的: Graph

在我的应用程序中,我画了一个蓝色箭头,过了一段时间,我需要将它的颜色更改为绿色,所以我用绿色笔再次绘制它。当用户单击某个东西时,箭头必须返回其原始颜色,因此我用蓝色笔再次绘制箭头。尽管我已经设置了.SmoothingMode=System.Drawing.Drawing2D.SmoothingMode.HighQuality,但所有这些都会产生一个像素化箭头。我不能使用clear on graphics,因为我在面板上绘制了几个形状。救命啊! 箭头是使用drawlines方法绘制的:

Graphics kanvas = pnlKanvas.CreateGraphics();
kanvas.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

Point[] arrow_points = { //... };                  

kanvas.DrawLines(pen, arrow_points);

我重复上述2-3次,每次改变钢笔的颜色。这给了我一个像素箭头,虽然我希望它平滑。我无法清除面板并重新绘制,因为我已在其上绘制了多个形状。

您必须清除并重新绘制箭头。您可以查看
Invalidate
方法来清除
pnlKanvas
上的特定区域或矩形。请参阅以了解更多信息。

在StackOverflow中发布问题之前,请先阅读。低质量是什么意思?发布你的绘图代码。我所说的低质量是指像素化箭头。这条线并不平滑……当然,如果你继续画东西,它会变得越来越模糊。你需要再次用一块空白画布重新绘制,以摆脱那些早期的箭头。这不是我想要的,但它可以做到。谢谢