wpf - 如何从滚动查看器中的最后一项中删除额外的边距?

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

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

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

enter image description here

但是一旦将一个项目添加到“溢出”滚动查看器的列表框中,随机边距突然出现,我不知道如何摆脱它:
enter image description here

我尝试了不同版本的 .NET 框架,但在 4.5 中没有发生这种情况,但不幸的是我必须使用 .NET 3.5

以下是具有相同行为的“沙盒”应用程序的链接:link

有人有什么想法吗?

以下是要求:

  • .NET 3.5
  • 列表框必须虚拟化,因为它会变得非常大。
  • 最佳答案

    您已设置 CanContentScroll="True"ScrollContentPresenter这意味着您希望逐项滚动。如果设置 CanContentScroll="False"你不会在底部看到任何空白空间。现在的原因是 listBox 将使用逐像素滚动。

    通过项目滚动,列表框保留一些空间以确保下一个项目完美地出现在视口(viewport)中。因此,您会在底部看到空白空间。

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

    话虽如此,您提到它在 .Net4.5 中运行良好,但事实并非如此。我也在你的样本中尝试了 4.5 并且仍然是相同的结果。

    关于wpf - 如何从滚动查看器中的最后一项中删除额外的边距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33637884/

    相关文章:

    silverlight - Silverlight App.xaml 中的“元素已经是另一个元素的子元素”错误

    c# - 基于 Windows 8 XAML 的游戏中的键盘处理

    c# - 如何将数据集中的表绑定(bind)到 C# 和 XAML 中的 WPF 数据网格

    c# - 为什么这个单元测试在比较两个 double 时会失败?

    css - 只有数字的字段 ASP.NET

    xml - 如何从 XML 文件中的特定节点获取值?

    c# - 如何从 XAML 中定义的 ResourceDictionary 检索 Brush 并将其应用于代码中的元素?

    c# - 在修改 C# WPF 应用程序中的绑定(bind)属性之前,如何确保我与 UI 同步以基于绑定(bind)更改样式?

    wpf - 如何从 wpf 中的另一个窗口访问一个窗口的控件(richtextbox)?

    wpf - 获取 ViewModel 中的 TextBox 值