使用WPF时,StackPanel的性能很差
本文关键字:性能 StackPanel WPF 使用 | 更新日期: 2023-09-27 18:13:10
我有一个在高分辨率显示器(1920x1080)上全屏运行的应用程序。大约25%的屏幕是用于在屏幕上滚动图像的StackPanel
。(X位置用双动画显示)
滚动非常滞后和跳跃,并且有明显的撕裂。这是在一台全新的高端游戏笔记本电脑上运行的,运行Win7 64bit。
我不明白为什么表演这么差。我做错了什么吗?这种动画是在CPU还是GPU上运行?有没有更聪明的方法在屏幕上滚动图像?WPF可以硬件加速,但只能在较新的显卡驱动程序上。一些板载的,开箱即用的驱动程序,将默认返回到软件渲染,这可能会感觉非常缓慢和笨拙。至于撕裂,这是一个普通的显卡设置,称为V-Sync。我会尝试将显卡驱动程序更新为专有驱动程序(nVidia, AMD等),并启用卡上的垂直同步。
您可以使用这里解释的方法检查它是否属于软件或硬件渲染。
如果这不能解决问题,我能想到的唯一一种可能性是你的动画/渲染没有同步到GUI。
我看到的一个可以解决这个问题的技巧是在你的页面上放置一个3D对象,查看它的一面并旋转它,例如对于4个图像有一个立方体,每一面设置一个图像。是的,旋转仍然需要GPU和处理器的时间,但它是由WPF动画内部处理的,因此不需要与设置滚动后的代码交互。