2

我正在使用一个库,它使我能够为 WinForm 元素的移动(链接如下)设置动画,当我使用它在表单(具有图片背景)上移动透明面板时,会出现大量撕裂。

我相信解决方法是让winforms以30fps的速度刷新而不会滞后。我尝试将计时器设置为This.Refresh();每秒 30 次,但最终加载缓慢。那么如何实现表单的良好刷新率呢?

上面描述的链接在这里-> http://code.google.com/p/dot-net-transitions/wiki/CodingWithTransitions#Creating_a_transition_that_works_on_a_single_property

这是一个撕裂的例子。这可能与面板的背景色设置为“透明” http://screencast.com/t/XIr3NkGI有关

4

1 回答 1

3

很久以前,当我在表单上的控件闪烁时遇到问题时,我使用了这个,在我的情况下,有很多控件,并且在加载表单时,控件会闪烁得很厉害。

最后我用了这个:

    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x02000000;
            return cp;
        }
    }

将其粘贴到您的表单中。

它在表单级别和其中的所有控件激活双缓冲。然而,虽然它停止了我闪烁的问题,但它大大降低了表单元素似乎移动的速度,因为它们在 100% 准备好之前不会被绘制。

我想你可以试试看它是否适合你的情况。

于 2012-12-22T04:09:07.207 回答