none
动画卡,但是鼠标不停地操作界面就变得流畅 RRS feed

  • 问题

  • 程序通过DoubleAnimation做了动画,界面有几个元素也是同样,加在一起,简单有动画效果的元素数量在30个的样子。

    当程序打开后,动画就非常卡,几乎是ppt了,一张一张的切,这时,如果鼠标拖动界面上的滚动条,或者是不停地在按钮上移动从而引起按钮的凹凸效果,则动画会随着按钮的凹凸频率或者界面的滚动频率来切换,反而显得流畅得多。

    正常理解的情况下,不是应该越卡的程序,鼠标越是操作,其会变得越卡么?是不是有什么我不知道的原理。

    其二,30个元素通过DoubleAnimatinon简单地修改ScaleTranform就卡成这样,是不是我的打开方式不对?

    2017年12月5日 16:19

答案

  • Hi,

    因为不知道你的程序具体情况,下面是优化WPF动画的一般建议:

    • 建议构建最新的.Net Framework版本的WPF的程序,新版本的WPF框架往往伴随着WPF组件的优化。
    • WPF底层基于DirectX, 所以WPF程序在支持硬件加速的机器上运行的比不支持硬件加速的机器上要好。
    • 动画绝对会对资源利用造成影响,如果不以正确的方式处理,消耗也会增加,建议移除不必要的动画。
    • 使用动画时,如果可能的话,可以适当的降低默认的动画帧数,默认是60fps. 通过DesiredFrameRateProperty属性来指定动画帧率。<DoubleAnimation Timeline.DesiredFrameRate="30" />
    • 你谈到了ScollViewer,显示大量的项可能会导致性能问题, 在这种情况下,可能会使用延迟滚动很有用,设置IsDeferredScrollingEnabled 属性为 true。
    • 这个问题可能只有你自己才能发现,因为我们对你的程序一无所知,建议使用WPF Performance Suite来看看你的程序到底哪里存在问题
    • WPF程序的优化是一个很大的主题,也是一项艰巨的任务,建议在互联网查找相关的优化方案。

    关于WPF的性能优化,建议你看看官方的文档:

    https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/optimizing-wpf-application-performance

    Sincerely,

    Bob


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 EnSleeP 2017年12月7日 10:06
    2017年12月7日 2:24
    版主

全部回复

  • Hi,

    因为不知道你的程序具体情况,下面是优化WPF动画的一般建议:

    • 建议构建最新的.Net Framework版本的WPF的程序,新版本的WPF框架往往伴随着WPF组件的优化。
    • WPF底层基于DirectX, 所以WPF程序在支持硬件加速的机器上运行的比不支持硬件加速的机器上要好。
    • 动画绝对会对资源利用造成影响,如果不以正确的方式处理,消耗也会增加,建议移除不必要的动画。
    • 使用动画时,如果可能的话,可以适当的降低默认的动画帧数,默认是60fps. 通过DesiredFrameRateProperty属性来指定动画帧率。<DoubleAnimation Timeline.DesiredFrameRate="30" />
    • 你谈到了ScollViewer,显示大量的项可能会导致性能问题, 在这种情况下,可能会使用延迟滚动很有用,设置IsDeferredScrollingEnabled 属性为 true。
    • 这个问题可能只有你自己才能发现,因为我们对你的程序一无所知,建议使用WPF Performance Suite来看看你的程序到底哪里存在问题
    • WPF程序的优化是一个很大的主题,也是一项艰巨的任务,建议在互联网查找相关的优化方案。

    关于WPF的性能优化,建议你看看官方的文档:

    https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/optimizing-wpf-application-performance

    Sincerely,

    Bob


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 EnSleeP 2017年12月7日 10:06
    2017年12月7日 2:24
    版主
  • 谢谢,至少让我知道wpf的动画还可以坚持,给出的解决方向也使我有路可寻,谢谢
    2017年12月7日 10:07