WPF 中是否存在与网格列大小调整相关的已知性能问题?
我有一个应用程序,我需要在列中执行一些特定的操作,但对于所有不同的解决方案,我发现列调整大小变得很慢。这适用于我的列表中通常有超过 1000 个元素的情况,但我认为这对于 WPF 来说并不算太多……?所以;一般问题是您是否经历过列大小调整缓慢,以及您是否找到了解决方案?是什么原因造成的?
关于我的具体案例的更多细节:
我的专栏中可以有两种不同的内容;组合框或文本块。 ComboBox 应填充整个列并跟随列大小调整,并且单击带有 TextBlock 的列的空白区域应选择该行。这就是问题所在。对于所有解决方案,我必须这样做,列大小调整会变得很慢。我发现使调整大小平滑的唯一方法是在它们外部添加一个带有 Orientation="Horizontal" 的 StackPanel,但这样我无法实现上述样式。
以下是一些观察结果:
- 将样式 HorizontalContentAlignment="Stretch" 添加到列表项会使 ComboBox 拉伸且 TextBlock 可单击,但也会使列大小调整速度变慢。
- 将 Background="Transparent" 添加到 StackPanel 或插入其中的元素也可以解决问题,但会导致调整大小变慢。
- 添加具有 Orientation="Horizontal" 属性的外部 StackPanel 可以使调整大小变得平滑,但我无法应用所描述的样式。
您是否尝试过虚拟化 ListView 中的元素?当您进行虚拟化时,虚拟化面板仅为视图中的元素创建视觉效果。这使您可以拥有大量项目,而不会出现您提到的性能问题。看虚拟化堆栈面板更多细节。还布局系统。您可以创建自己的虚拟化面板。如果你在 google 上查找“virtualizing+wpf”,你会发现很多关于虚拟化 Canvas、WrapPanel 等的搜索结果。
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)