WPF的StackPanel性能不佳

时间:2011-11-03 15:06:14

标签: c# wpf wpf-controls

我有一个在高分辨率显示器(1920x1080)上全屏运行的应用程序。 大约25%的屏幕是StackPanel,可以在屏幕上滚动图像。 (X位置用双动画制作动画)

卷轴非常迟缓和跳跃,并且有明显的撕裂。 这是在一台全新的高端游戏笔记本电脑上运行,运行Win7 64bit。

我不明白为什么表现如此糟糕。难道我做错了什么?这种动画是在CPU还是GPU上运行?是否有更智能的方法在屏幕上滚动图像?

2 个答案:

答案 0 :(得分:0)

WPF可以硬件加速,但仅适用于较新的视频卡驱动程序。一些板载,开箱即用的驱动程序将默认返回软件渲染,这可能会感觉非常缓慢和笨重。至于撕裂,这是一种普通的视频卡设置,称为V-Sync。我会尝试将视频卡驱动程序更新为专有驱动程序(nVidia,AMD等),并在卡上启用垂直同步。

您可以使用here解释的方法检查它是否属于软件或硬件渲染。

如果这不能解决问题,我能想到的唯一其他可能性是你的动画/渲染没有同步到GUI。

有关详细信息,请参阅this msdn文章。

答案 1 :(得分:0)

我见过可以解决此问题的一个技巧是在页面上放置一个3D对象,一边查看它并旋转它,例如对于4个图像,有一个立方体,每侧都有一个图像。 是的,旋转仍然需要GPU和处理器时间,但它由WPF动画内部处理,因此一旦设置滚动就不需要与代码交互。