使用绘图调用在C#中平滑动画

时间:2011-03-10 00:21:57

标签: c# graphics

我正在尝试在C#表单应用程序上获得流畅的动画。

我基本上需要做的是调用一些绘图函数来创建UI的布局。

我已经在网上看了很多选择,但是在可见闪烁方面,这些都没有完全成功。

我已将表单属性设置为:

this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, true);
this.DoubleBuffered = true;

然后我有一个单独的线程来绘制其中一个菜单,我在一个位图中在内存中编写图像,然后在屏幕上打印结果。

Bitmap curBitmap = new Bitmap(200, 700);
Graphics tempGraph1;
tempGraph1 = Graphics.FromImage(curBitmap);

tempGraph1.FillRectangle(s1.color, r1);
tempGraph1.FillEllipse(s1.color, e1);
tempGraph1.FillEllipse(Brushes.White, c1);

formGraphT1.DrawImage(curBitmap, 0, timer1_count);

因此,即使每个周期只有一个DrawImage调用,一些闪烁仍然很明显。 fps速率的感觉在某处受到限制,或者实际上并不会发生双缓冲。 有什么想法吗?

谢谢, .A

1 个答案:

答案 0 :(得分:0)

您是否尝试过绘图之前和之后调用SuspendLayout / ResumeLayout