在WPF中,与网格列调整大小相关的性能问题是否普遍存在?
我的应用程序需要对某一列执行一些特定操作,但我发现无论采用哪种不同的解决方案,列的调整大小都会变得很慢。当我的列表中有超过1000个元素时,这种情况就会出现,但我认为这对于WPF来说并不算太多...所以,总的问题是:您是否经历过列调整缓慢的情况,并且是否已经找到了解决方法?这是什么原因导致的?
以下是我特定情况的一些更多细节:
我的列中可以有两种不同的元素;ComboBox或TextBlock。ComboBox应该填满整个列,并随着列的调整而调整,单击TextBlock的空白区域应选择该行。这就是问题所在。对于所有我的解决方案,列调整大小都会变得很慢。我找到的唯一使调整平滑的方法是添加具有Orientation =“Horizontal”的StackPanel,但是使用此方法我无法实现上述样式。
以下是一些观察结果:
- 向列表项添加HorizontalContentAlignment =“Stretch”样式将使ComboBoxes伸展并使TextBlocks可点击,但也会使列调整大小变慢。
- 向StackPanel或插入其中的元素添加Background =“Transparent”样式也可以解决这个问题,但会使调整大小变慢。
- 添加具有Orientation =“Horizontal”的外部StackPanel会使调整大小平滑,但我无法应用如上所述的样式。