这个问题在这里已经有了答案:
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/