首页 / 知识
关于.net:WinForms中的简单动画
2023-04-12 05:26:00

Simple animation in WinForms假设您要为WinForm上的某些对象设置动画。 您设置了一个计时器来更新状态或模型,并覆盖窗体的绘制事件。 但是从那里开始,为动画连续重新绘制窗体的最佳方法是什么?
每次我需要这样做时,我都会发现具有新缺点的新方法。 SO社区有哪些经验和建议? 我创建了一个库可能对此有所帮助。它称为过渡,可以在以下位置找到:https://github.com/UweKeim/dot-net-transitions。在nuget上作为dot-net-transitions包提供 它使用在后台线程上运行的计时器为对象设置动画。该库是开源的,因此,如果对您有用,则可以查看代码以查看其作用。 在某些情况下,不使用paint事件进行绘制,而是从控件/窗体获取Graphics对象并在其上进行绘制,这样会更快,更方便。这可能会给不透明度/反锯齿/文本等带来一些麻烦,但是在不必重新绘制整个shabang方面值得考虑。类似于以下内容:
我本人在某些控件中使用了此控件,并在感兴趣的对象移动或需要删除时缓冲了图像以"清除"背景。 您正在做的事情是我在WinForms(具有不断重绘的计时器)中使用过的唯一解决方案。您可以使用多种技术使用户的使用体验更加流畅(例如双缓冲)。 您可能想尝试一下WPF。有内置的功能可以在WPF中制作动画,它们比基于计时器的解决方案更流畅(并且需要更少的代码,并且不需要同步)。 请注意,对于该解决方案,您无需在整个应用程序中使用WPF;可以将此功能打包到WPF控件中,然后将该控件嵌入WinForms应用程序(或非托管应用程序)中: http://www.codeproject.com/KB/WPF/WPF_UserControls.aspx |
最新内容
相关内容
python空格怎样设置
python空格怎样设置,代码,培训,空格,括号,语句,条件,冒号,分号,前面,周围,Python最具特色的是用缩进来标明成块的代码。我下面以if选择结构来python中的变量怎么设置
python中的变量怎么设置,数据,变量,信息,名称,培训,赋值,内存,等号,数据类型,浮点,python中变量设置方法:变量存储在内存中的值。这就意味着在python如何设置编码格式
python如何设置编码格式,代码,培训,一致,声明,文件,头部,格式,注释,中文,以下,如果要在python2的py文件里面写中文,则必须要添加一行声明文件python如何设置路径
python如何设置路径,培训,工作,路径,模块,以上,更多,内容,改变python的默认路径为当前的工作路径通过os模块来进行python中路径的更改默认python函数形参如何设置默认值
python函数形参如何设置默认值,培训,函数,实例,以上,参数,更多,内容,在编写函数时,可以为每个形参指定默认值。1、Python在调用函数中为形pythonOSI七层模型是什么
pythonOSI七层模型是什么,数据,标准,地址,设备,服务,运输,系统,通信,基础,检测,python中OSI七层模型是什么说明1、七层模型,亦称OSI。2、参考python__setattr__的属性设置
python__setattr__的属性设置,数据,管理,培训,属性,方法,实例,字典,函数,是非,下面,python中__setattr__的属性设置1、说明定义类对象管理属关于范例:您是否使用MDA / MDD / MD
关于范例:您是否使用MDA / MDD / MDSD,任何一种模型驱动的方法? 会是未来吗?,关于范例:您是否使用MDA / MDD / MDSD,任何一种模型驱动的关于macos:从Cocoa / Mac编程开始的
关于macos:从Cocoa / Mac编程开始的开发人员设置,关于macos:从Cocoa / Mac编程开始的开发人员设置,语法,编程,我想,点上,Developer Set关于c#:对基于计时器的应用程序进行
关于c#:对基于计时器的应用程序进行单元测试?,关于c#:对基于计时器的应用程序进行单元测试?,应用程序,操作,执行,计时器,Unit testing a ti如何在Windows上设置编辑器以使用G
如何在Windows上设置编辑器以使用Git?,如何在Windows上设置编辑器以使用Git?,错误,我在,收到了,地步,How can I set up an editor to w关于xaml:WPF:如何设置或禁用文本框
关于xaml:WPF:如何设置或禁用文本框的默认ContextMenu,关于xaml:WPF:如何设置或禁用文本框的默认ContextMenu,用户,应用程序,单击,鼠标