在WinForms c#上撕裂我的动画



我正在使用一个库,它使我能够动画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%准备好才被绘制。

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

最新更新