GDI+学习笔记--未完待续
生成Graphics的两种方法: l 通过事件参数Eventargs生成; l 通过控件的CreateGraphics方法生成;
|
绘制的两种方法: l 控件的paint事件; l 重写Control类的OnPaint方法; |
Graphics是否需要Dispose释放资源?(也可以使用using释放资源)
1、由事件参数EventArgs创建的Graphics不需要释放资源,如e.Graphics;
2、由控件本身创建的Graphics需要释放资源,如this.CreateGraphics;
图形变换/变形的分类:
1、线性变形:旋转、缩放和翻转等简单的变形,都是线性变形;
2、仿射变形:线性变形后,再进行平移变形,就叫做仿射变形;
3、剪切变形:根据一个剪切因数对对象进行的扭曲变形;
进行变换的方式
1、通过Graphics的Transform方法进行变换;
2、通过Matrix类进行变换,将Matrix赋值给Graphics的Transform属性即可;
3、对Path和Region进行局部变换;
变换方法测试截图:
关于Matrix类的几点说明:
- 最右边一列的元素始终不变(0,0,1)
- 左上角四个元素值,负责缩放变换、旋转变换;
- 左上角四个元素中,主对角线上的两个元素,分别负责X轴缩放和Y轴缩放;
- 下面两个元素负责平移变换,左边的负责X平移,右边的元素负责Y平移;
GDI+中有绘图表面的概念,Graphics由哪个控件(或者其事件参数,或者回调方法)创建,那么绘图就会在该控件表面进行,而不会绘制到别的控件表面上;
Rectangle和RectangleF:左边是整数int为参数的矩形,右边是浮点数float为参数的矩形
Point和PointF:左边是整数int为参数的点,右边是浮点数float为参数的点;
双缓存的设置代码:
this.SetStyle(ControlStyles.UserPaint,true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
测试截图:
测试截图
英语生词本:
thumbnail 英 /ˈθʌmneɪl/ 美 /ˈθʌmneɪl/ n. 拇指指甲;极小的东西;短文;缩略图
adj. 极小的,极短的
palette 英 /ˈpælət/ 美 /ˈpælət/ n. 调色板;一组颜色;(计算机程序中的)选项板;
intersect 英 /ˌɪntəˈsekt/ 美 /ˌɪntərˈsekt/ v. 相交,交叉;横穿,横断;交集
...............................待续......................................