![]() |
1
9
在某些情况下,不使用“绘制”事件进行绘制,而是从控件/窗体中获取图形对象并在其上“绘制”会更快更方便。这可能会给不透明度/消除混叠/文本等带来一些麻烦,但从不必重新绘制整个shabang的角度来看,这是值得的。沿着这条线的东西:
我在一些控件中使用它,当感兴趣的对象移动或需要删除时,我会使用缓冲图像“清除”背景。 |
![]() |
2
46
我已经创建了一个可以帮助解决这个问题的库。这就是所谓的转换,可以在这里找到: http://code.google.com/p/dot-net-transitions/ 它使用在后台线程上运行的计时器来设置对象的动画。这个库是开放源码的,所以如果它对您有任何用处,您可以查看代码以了解它在做什么。 |
![]() |
3
3
您所做的是我在WinForms中使用过的唯一解决方案(一个具有恒定重绘的计时器)。有许多技术可以用来让用户的体验更平滑(例如双缓冲)。 你可能想试试WPF。在WPF中有内置的动画制作工具,与基于计时器的解决方案相比,它们更平滑(并且需要的代码更少,而且不需要同步)。 请注意,对于该解决方案,您不需要在整个应用程序中使用wpf;可以将此功能打包到wpf控件中,并将该控件嵌入到winforms应用程序(或非托管应用程序)中: |
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 5 月前 |
![]() |
CactusCake · if语句中应有分号 6 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 7 月前 |