我正在使用一个库,该库使我能够为 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% 准备就绪之前不会被绘制。
我想你可以尝试看看是否适合你的情况。
关于c# - 在 WinForms C# 上撕裂我的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13999781/