在这里处理的情况:具有非常低的动画帧速率
我有一个系列的主要成分列表框很多意见。列表框,其中一些内含大量数据,一些非常少。 目前,我有一个附加行为,基本上只是检测何时将新内容加载到容器中以查看这些视图(a ContentPresenter
)并触发一个简单的XAML故事板,该容器将容器向左或向右偏移200px ,并且将不透明度降低到0%(在0ms),然后超过100ms,将不透明度恢复到100%,并将偏移量减小到0px,从而产生“滑入视图”效果。现在
,这个问题:
这个动画的帧率变化从平稳过渡到紧张的可怕的任何地方,以1帧,直到完成彻底的只是落后。 这几乎肯定是由于它必须加载新视图,渲染所有内容,甚至更进一步;在它们中加载数据的列表需要更多的渲染时间,然而在发生所有这些情况时,它试图对其位置变化进行动画处理,这似乎严重影响了动画的性能。
它让我震惊,由于在屏幕上移动一些像素简单的东西是如此的图形密集型为WPF处理
我的问题:
是否有任何一种基本的最佳做法来处理WPF中的密集动画以改善其性能或任何ki对于那些加起来可以提升性能的东西发生微小变化? 或者是WPF在动画制作中非常糟糕,我们只需要处理它。
你是否在'ListView's中启用了'Virtualization''?如果不想查看'VirtualizingStackPanel'。 – XAMlMAX
是的,他们都有,所以我的猜测是某些列表框项目的数据模型有时足够复杂,即使只有几个显示足以减慢速度 – Logan
确保虚拟化在您的“ListView”上工作,我以前遇到过问题。你使用'ItemsSource'的普通Binding还是使用'CollectionViewSource'?你是否也可以发布一个包含虚拟化的ListView的'XAML'? – XAMlMAX