我正在使用一个库,它使我能够为 WinForm 元素的移动(链接如下)设置动画,当我使用它在表单(具有图片背景)上移动透明面板时,会出现大量撕裂。
我相信解决方法是让winforms以30fps的速度刷新而不会滞后。我尝试将计时器设置为This.Refresh();
每秒 30 次,但最终加载缓慢。那么如何实现表单的良好刷新率呢?
这是一个撕裂的例子。这可能与面板的背景色设置为“透明” http://screencast.com/t/XIr3NkGI有关
我正在使用一个库,它使我能够为 WinForm 元素的移动(链接如下)设置动画,当我使用它在表单(具有图片背景)上移动透明面板时,会出现大量撕裂。
我相信解决方法是让winforms以30fps的速度刷新而不会滞后。我尝试将计时器设置为This.Refresh();
每秒 30 次,但最终加载缓慢。那么如何实现表单的良好刷新率呢?
这是一个撕裂的例子。这可能与面板的背景色设置为“透明” http://screencast.com/t/XIr3NkGI有关
很久以前,当我在表单上的控件闪烁时遇到问题时,我使用了这个,在我的情况下,有很多控件,并且在加载表单时,控件会闪烁得很厉害。
最后我用了这个:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000;
return cp;
}
}
将其粘贴到您的表单中。
它在表单级别和其中的所有控件激活双缓冲。然而,虽然它停止了我闪烁的问题,但它大大降低了表单元素似乎移动的速度,因为它们在 100% 准备好之前不会被绘制。
我想你可以试试看它是否适合你的情况。