GDI+最大的特色就是Graphics,并提供了更多的画图功能。
通过这几天的学习,对绘图基本有个掌握.
首先我们来谈双缓冲的技术.
如果我们是直接在窗体上绘图的话,我们可以使用如下的方法
this.SetStyle(ControlStyles.DoubleBuffer |
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint,
true);
this.UpdateStyles();
通过Form的OnPaint()就可以绘无闪硕的图形了.
还有一种方法:
使用一个 Bitmap作为后端.
private Bitmap renderSurface = null;
初始化renderSuface()
private void DoRenderSurface()
{
if (renderSurface != null)
{
renderSurface.Dispose();
}
renderSurface =new Bitmap(ClientRectangle.Width,ClientRectangle.Height);
using (Graphics g = Graphics.FromImage(renderSurface))
{
g.Clear(this.BackColor);
}
}
画图
private void DoDraw(Graphics g)
{
if (renderSurface == null)
{
DoRenderSurface();
}
g.DrawImage(renderSurface,ClientRectangle,ClientRectangle,GraphicsUnit.Pixel);
}