我正在使用一个库,它使我能够动画WinForm元素的运动(链接如下),当我用它来移动一个透明面板在窗体(它有一个图片背景)有一个非常多的撕裂。
我认为解决办法是让winforms以30fps的速度刷新而不会延迟。我尝试设置一个计时器,以每秒30次做This.Refresh();
,但它只是以缓慢的加载结束。那么我该如何获得一个不错的表单刷新率呢?
上面描述的链接在这里-> http://code.google.com/p/dot-net-transitions/wiki/CodingWithTransitions#Creating_a_transition_that_works_on_a_single_property
这是一个撕裂的例子。这可能与面板的背景色设置为"透明"有关http://screencast.com/t/XIr3NkGI
我在很久以前使用过这个方法,当时我遇到了窗体上控件闪烁的问题,在我的情况下,有许多控件,当加载窗体时控件会闪烁得很严重。
最后我用了这个:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000;
return cp;
}
}
粘贴到你的表单中。
它激活表单级别和表单中的所有控件的双缓冲。然而,虽然它解决了我的闪烁问题,但它大大降低了表单元素似乎移动的速度,因为它们直到100%准备好才被绘制。
我想你可以试着看看它是否适合你的情况。