WPF列调整了性能问题

时间:2009-05-06 12:01:57

标签: wpf resize performance

WPF中是否存在与网格列大小调整相关的任何已知性能问题?

我有一个应用程序,我需要在列中执行某些特定的操作,但对于所有不同的解决方案,我发现列调整大小变慢。这适用于我的列表中通常有超过1000个元素,但我认为这对于WPF来说并不是太多......?所以;一般的问题是你是否经历过慢柱调整大小,以及你是否找到了解决方案?是什么造成的?

关于我的具体案例的更多细节:

我的专栏中可以有两个不同的东西; ComboBox或TextBlock。 ComboBox应填充整列,然后按列调整大小,单击带有TextBlock的列的空白区域应选择该行。这就是问题所在。对于我必须解决的所有解决方案,列调整大小变慢。我发现调整大小平滑的唯一方法是在Orientation =“Horizo​​ntal”之外添加一个StackPanel,但是这样我就无法实现上述样式。

以下是一些观察结果:

  • 将样式Horizo​​ntalContentAlignment =“Stretch”添加到列表的项目使得ComboBox伸展并且TextBlocks可单击,但列调整大小也很慢。
  • 将Stack =“Transparent”添加到StackPanel或插入其中的元素也可以解决问题,但会使调整速度变慢。
  • 使用属性Orientation =“Horizo​​ntal”添加外部StackPanel会使调整大小平滑,但我无法按照描述应用样式。

1 个答案:

答案 0 :(得分:2)

您是否尝试过虚拟化ListView中的元素?虚拟化时,虚拟化面板仅为视图中的元素创建视觉效果。这使您可以拥有大量项目而不会出现性能问题。有关详细信息,请参阅VirtualizingStackPanelThe Layout System也是{{3}}。您可以创建自己的虚拟化面板。如果你在google上查找“virtualizing + wpf”,你会发现很多用于虚拟化画布,WrapPanel等的点击。

我希望这会有所帮助。