+ -
当前位置:首页 → 问答吧 → Graphics 如何重绘,或清除内容

Graphics 如何重绘,或清除内容

时间:2011-12-05

来源:互联网

我先更换winform的背景图片,然后
C# code

            Graphics g = this.CreateGraphics();
            Pen mypen = new Pen(Color.red);
            g.DrawEllipse(mypen, 0, 0, 329, 229);


这样背景图片和绘的椭圆都能看到;
问题:
如何清除这个椭圆然后在画一个,例如
g.Clear();
Pen mypen2 = new Pen(Color.Black);
g.DrawEllipse(mypen2, 0, 0, 329, 229);
但C#中Clear(),必须要有参数Color,但那样就会覆盖背景图片,求解决方法
补充:由于某些原因,不能使用Refresh()这方法

作者: p424671075   发布时间: 2011-12-05

没有办法。你应该把画布想象成黑板,绘制上去的东西是没有差别的。

折衷的思路是:(1)绘制椭圆前备份画布到另一个位图,然后再绘制回来。(2)在原先位置用背景色再画一次。

作者: caozhy   发布时间: 2011-12-05

g.clear(BackColor)
然后用g画图。

注意,你一定要记得g.Dispose()!!!

作者: gqqnb   发布时间: 2011-12-05