gpt4 book ai didi

c# - 为什么 WPF DataGrid 的垂直滚动太大?

转载 作者:太空宇宙 更新时间:2023-11-03 16:29:25 25 4
gpt4 key购买 nike

我有一个带有滚动和虚拟化的数据网格。其他一切都很好,除了有可能额外的 1-23 像素滚动到底部:

enter image description here

我有一个数据网格,右侧有一个自定义样式的滚动条,然后底部有一个拆分器,问题是拆分器和网格之间有空白空间,这本身很好(因为您可以调整拆分器并有更多的空白空间),但滚动条现在比它需要的要大,这会导致其他地方出现问题。如何确保滚动条恰好“与内容一样高”。

我不希望它滚动到空白位置,因为我在其他地方有代码读取滚动位置并乘以行高以确定我们所在的位置,一旦超出可滚动区域它就会出错。

数据网格如下所示:

<DataGrid CanUserSortColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserResizeColumns="True"
CanUserReorderColumns="True"
SelectionUnit="FullRow"
ScrollViewer.CanContentScroll="True"
SelectionMode="Single"
HeadersVisibility="Column"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling"
AutoGenerateColumns="False" />

更新:我想我知道原因了。因为我使用虚拟化,它按一行滚动(而不是按像素),因此它不允许我滚动以使行部分可见。它总是按一行的高度滚动(在我的例子中是 24 个单位)。现在,如果我移动网格拆分器并使最后一行仅部分可见,它会正确显示滚动条,但问题是它将滚动 24 个单位,从而在底部显示空白区域。

意识到这一点后,我不太确定这个问题是否可以解决。我只需要在其他地方编辑代码以确定是否存在超出滚动范围的情况,如果是,我将“裁剪并忽略”最后 1-23 个滚动单位。

最佳答案

请在您的 DataGrid 上使用属性 ScrollViewer.VerticalScrollBarVisibility="Auto"

有关此属性的更多信息,请访问 http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer.verticalscrollbarvisibility.aspx

关于c# - 为什么 WPF DataGrid 的垂直滚动太大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11299881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com