我正在尝试在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