How to know why an animation stutters?

后端 未结 3 1900
醉话见心
醉话见心 2021-02-14 02:16

I have a few fairly simple animations (moving text around, moving ellipses etc.) and running in full screen (1920x1080 minus the task bar) the WPF Performance Suite reports a go

相关标签:
3条回答
  • 2021-02-14 03:00

    Patrick,

    I have no answers. All I can do is provide some solidarity. I'm trying to animate an ItemsControl. The concept is pretty simple, really. I've got a ListView and in the ListView I have a GridView. I want the items in the GridView to to smoothly go from one row to another row as the underlying list is sorted so that, for example, a sorted list will stay sorted as the values in the list change.

    I've noticed this: animation on moderately complex controls is a CPU hog. The stuttering I'm pretty sure is simply related to the CPU being maxed out (I noticed you didn't provide the CPU graph on your dump above). Keep the CPU around 50% and the animation appears smooth, above 75% and you get these stutters. Still working on the problem, but I think it goes deeper than my code.

    Don

    0 讨论(0)
  • 2021-02-14 03:08

    Have you tried to set a lower "max frame rate" to the animation?

    <Storyboard Timeline.DesiredFrameRate="10">
        <!-- ....blah blah blah  -->
    </Storyboard>
    

    If your animation is causing massive recalculation of child or parent elements, changing the DesiredFrameRate will have a cascading effect on the number of calculations made by the system. Also, check out the "Remarks" section of this link. It explains why/when you should use it.

    If setting a lower frame rate fixes your stuttering, then you need to consider simplifying your XAML to limit the amount of recalculation needed at every frame of your animation (limiting the number of child or parent objects resized - or affected in any way - by every frames/changes made by the animation.

    You might want to also check out the "WPF Performance Suite". It is an awesome set of tools to determine what exactly is going on in your WPF app, seeing which parts of your window are being repainted and when, and the CPU usage of each of your XAML elements!

    Hope this helps!

    0 讨论(0)
  • 2021-02-14 03:12

    I had a similar issue where it was stuttering, nothing really major it just looked like little stutters here and there while I ran the program. On a hunch, I shut down Google Chrome while it was running and that fixed it,the scrolling became completely smooth...

    So my advice would be if you have any internet browsers open check to see if closing them out fixes the problem.

    0 讨论(0)
提交回复
热议问题