如何从滚动查看器的最后一项中删除额外的边距?
How to remove additional margin from last item in scrollviewer?
这个问题我用了3天,所以在这里问一下。
我有一个包含一些收据项的列表框。当我添加前几项时,一切正常:
但是一旦将项目添加到 "overflow" 滚动查看器的列表框,随机边距就会突然出现,我不知道如何摆脱它:
我尝试了不同版本的 .NET 框架,在 4.5 中没有发生这种情况,但不幸的是我绑定到 .NET 3.5
这是具有相同行为的 link 到 "sandbox" 应用程序:link
有人有什么想法吗?
要求如下:
- .NET 3.5
- 列表框必须虚拟化,因为它会变得非常大。
您已在 ScrollContentPresenter
上设置 CanContentScroll="True"
,这意味着您需要逐项滚动。如果您设置 CanContentScroll="False"
,您将不会在底部看到任何空的 space。原因是现在 listBox 将使用逐像素滚动。
随着项目的滚动,列表框会保留一些 space 以确保下一个项目完美地出现在视口中。因此,您会在底部看到空 space。
但是,将其设置为 false 将禁用 UI 虚拟化。所以,这是空 space 和虚拟化之间的一种权衡。
也就是说,您提到它在 .Net4.5 中工作正常,但事实并非如此。我也在你的样本中尝试了 4.5,结果仍然相同。
这个问题我用了3天,所以在这里问一下。
我有一个包含一些收据项的列表框。当我添加前几项时,一切正常:
但是一旦将项目添加到 "overflow" 滚动查看器的列表框,随机边距就会突然出现,我不知道如何摆脱它:
我尝试了不同版本的 .NET 框架,在 4.5 中没有发生这种情况,但不幸的是我绑定到 .NET 3.5
这是具有相同行为的 link 到 "sandbox" 应用程序:link
有人有什么想法吗?
要求如下:
- .NET 3.5
- 列表框必须虚拟化,因为它会变得非常大。
您已在 ScrollContentPresenter
上设置 CanContentScroll="True"
,这意味着您需要逐项滚动。如果您设置 CanContentScroll="False"
,您将不会在底部看到任何空的 space。原因是现在 listBox 将使用逐像素滚动。
随着项目的滚动,列表框会保留一些 space 以确保下一个项目完美地出现在视口中。因此,您会在底部看到空 space。
但是,将其设置为 false 将禁用 UI 虚拟化。所以,这是空 space 和虚拟化之间的一种权衡。
也就是说,您提到它在 .Net4.5 中工作正常,但事实并非如此。我也在你的样本中尝试了 4.5,结果仍然相同。