1

如果我的滚动查看器中有一个虚拟化堆栈面板,那么我的滚动查看器如何知道滚动条需要的高度?

例如,如果我有 10,000 个项目,它怎么知道我只向下滚动了 5% 的列表?

如果我不知道物品的大小怎么办?

4

1 回答 1

0

是一个非常好的资源,在底部您可以下载示例项目。我认为您正在寻找的是 GetFirstVisibleIndex 和 GetLastVisibleIndex 函数。为了方便起见,我在下面列出了它们。基本上,您将有一个偏移量来跟踪列表的“顶部”有多远。结合项目的大小将有助于获得您正在寻找的价值

 private int GetFirstVisibleIndex()
 {
    return (int)Math.Floor(_offset.Y / _itemSize.Height);
 }

 private int GetLastVisibleIndex()
 {
    return Math.Min((int)Math.Ceiling((_offset.Y + _viewport.Height) / _itemSize.Height) - 1, GetItemsCount() - 1);
 }
于 2011-11-09T03:12:16.393 回答