如何从scrollviewer中的最后一项删除额外的边距?

时间:2015-11-10 19:21:16

标签: wpf vb.net xaml mvvm .net-3.5

我在这个问题上用了3天,所以我在这里问。

我有一个包含一些收据项目的列表框。当我添加前几件商品时,一切正常:

enter image description here

但是只要一个项目被添加到列表框中,那么"溢出" scrollviewer,随机边缘突然出现,我无法弄清楚如何摆脱它: enter image description here

我尝试了不同版本的.NET框架,并且在4.5中没有发生这种情况,但不幸的是我受到.NET 3.5的限制

这是指向" sandbox"的链接具有相同行为的应用程序:link

有人有什么想法吗?

以下是要求:

  • .NET 3.5
  • 列表框必须虚拟化,因为它可能会非常大。

1 个答案:

答案 0 :(得分:4)

您已在CanContentScroll="True"上设置了ScrollContentPresenter,这意味着您需要逐项滚动。如果您设置CanContentScroll="False",则无法在底部看到任何空白区域。原因是现在listBox将使用逐像素滚动。

使用项目滚动,列表框会保留一些空间以确保下一个项目在视口中完美呈现。因此,你会看到底部的空白区域。

但是,将其设置为false将禁用UI虚拟化。因此,它是空白空间和虚拟化之间的一种权衡。

话虽如此,你提到它在.Net4.5中运行良好,但实际情况并非如此。我尝试使用4.5也是同样的结果。