1、在开发“可视化SQL语句生成器”的过程中,发现GDI+的一个BUG
只要执行下面的代码,就会在gp.Widen语句处抛出OutOfMemory的异常:
float x1 = 1.0f, y1 = 10.0f; float x2 = 1.0f, y2 = 10.0f; GraphicsPath gp = new GraphicsPath(); gp.AddLine(new PointF(x1, y1), new PointF(x2, y2)); gp.Widen(new Pen(Color.Black, 1)); gp.Dispose();
|
2、总结
调用AddLine方法时,如果线段的起点和终点相同,就会出现此问题。
3、解决办法
调用AddLine方法前,检测有没有起点和终点相同的情况,若有,则给其中一个增加微小的偏移量。如:
if (x1 == x2) x2 += 0.001f;
|
环境:
.NET Framework Version:2.0.50727
VS2005 sp1 日文版
阅读(2845) | 评论(0) | 转发(0) |