存储图形, 应该存储图元的类别和参数, 而不是存储整个Class. 最简单的办法是将
图形存到一个纪录型文件. 存储到数据库也是可以的, 但是需要定义一个能够容纳全
部图元的纪录, 例如有如下几种图元看一看能够用什么样的纪录:
Drawing: Left, Top, Width, Height, BackColor;
Pen: Color, Width, Mode;
Brush: Color, Style;
Font: Name, size, Style;
Line: x1, y1, x2, y2;
Circle: C1, C2, R;
Arc: Cx, Cy, R, StartAngle, EndAngle;
Text: Top, Left, Width, Height, Text;
Rect: Top, Left, Width, Height;
对于上述几个图元, 用一个如下的纪录是可以的:
字段1: Object, String
字段2: N1, Float
字段3: N2, Float
字段4: N3, Float
字段5: N4, Float
字段6: N5, Float
字段7: Test, String
这样做的好处是, 数据库易读, 可以手工修改; 不好之处是数据库中有一点浪费.
绘图时候读到 Pen 就改变Pen的设置, 读到 Arc 就取相应的参数画 Arc.