wpf - ScrollViewer 视口(viewport)高度 VS 实际高度

标签 wpf listbox virtualization scrollviewer actualheight

这个问题在这里已经有了答案:





WPF DataGrid : CanContentScroll property causing odd behavior

(2 个回答)


8年前关闭。




两者都是非常笼统的术语,但我很想知道除了我们使用虚拟化的情况之外,这些高度何时会有所不同?

还有一个问题:
我在 MSDN 上读到:

如果 CanContentScroll 为 true,则 ExtentHeight、ScrollableHeight、ViewportHeight 和 VerticalOffset 属性的值是项目数。如果 CanContentScroll 为 false,则这些属性的值是与设备无关的像素。

但是我遇到了 ViewPort Height 的问题:我在应用程序中有 2 个列表框:
1. 已启用虚拟化且 CanContentScroll = True。
2.没有虚拟化并且CanContentScroll = True。

在 ListBox 1 中,拖放 Viewport Height 达到 4/5(当前可见的元素数)。但是在 ListBox 2 中,我得到的视口(viewport)高度等于列表框的实际高度。

为什么会有这种差异?

更多发现:
1. 可滚动高度是滚动查看器中不可见的项目数
2. 视口(viewport)高度是滚动查看器中可见的项目数。
因此视口(viewport)高度 + ScrollableHeight = 范围高度

有人可以解释一下两个列表框有什么区别吗?如果是 Listbox 1,我需要 ViewPort hieght

最佳答案

ActualHeight是 ScrollViewer 的实际高度。视口(viewport)是从 ScrollViewers 内容可见的。所以回答你的问题:ViewportHeight不同于 ActualHeight如果 Height 可以看到水平滚动条的滚动条。

所以,总结一下:

ActualHeight = ViewportHeight + HorizontalScrollbarHeight

关于wpf - ScrollViewer 视口(viewport)高度 VS 实际高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5733738/

相关文章:

wpf - 将 WPF 网格控件数据绑定(bind)到 CSV 文件

c# - WPF DataGrid 页脚行

WPF:由于样式和/或修改的列表框,Groupstyle 无法正常工作

c# - 网格和列表框有一些我无法摆脱的边框

windows - 寻找有关在 Windows 7 上安装应用程序的 "right"方式的文档

wpf - 如何将 WPF Tab Control 选项卡放在侧面

c# - 在 XAML 中绑定(bind)多边形点

c# - UWP 列表框中的文本到语音 (c#')

linux - Intel VMX中KVM如何调度多个VM?

windows - Windows 10 任务管理器如何检测虚拟机?