|
|
1
3
我需要指出的第一件事是,WPF使用DirectX进行渲染。如果DirectX不可用,则系统将自动默认为软件渲染器(速度慢得多)。 现在,如果DirectX可用(在所有全功能计算机中都是如此,但在“便携式设备”上则不是如此),那么下一个问题就是图形卡(或芯片)的电源。 我之所以提到这一点,是因为您提到您的代码在便携式设备上使用样式(我假设它不是笔记本电脑)。如果是这样的话,台式电脑上的一小撮操作在便携设备上可能会非常慢。 现在,你的风格复杂吗?或者他们有很多渲染工作?(即:复杂梯度)。如果是这样,也许您可以考虑在便携设备上执行时从应用程序中减少(或消除)它们。 WPF提供了一种很好的方法来确定执行软件的硬件是否能够处理负载。 代码为:
现在,如果rendertier==0,那么您有一个不能提供任何硬件加速的显卡(或芯片),因此所有渲染都将使用WPF软件渲染器(在CPU上)完成。 如果rendertier==1,则 部分的 加速度。一些操作将在图形卡上完成,其他操作将在CPU上完成。 如果rendertier==2,则硬件完全加速,所有渲染都将在图形卡上执行。 |
|
|
3
0
我不确定它是否能解决问题,但您可以尝试使用 VirtualizingPanel |
|
|
4
0
如果需要在加载时创建元素,并且不允许虚拟化面板在用户滚动列表时创建它们,则只需将virtualizingstackpanel.isvirtualizing属性设置为false:
至于DataGrid与ListView的性能。我们发现第一个渲染时间在我们的项目中是不可接受的,并决定基于ListView编写我们自己的网格控件。性能差异是巨大的:从平均数据报的300毫秒,我们从ListView获得了约80毫秒… |
|
5
0
避免将ScrollBarVisibility属性设置为
|