virtualizingstackpanel和height

时间:2011-11-09 00:23:25

标签: silverlight silverlight-4.0 virtualizingstackpanel

如果我的scrollviewer中有一个virtualizingstackpanel,那么我的scrollviewer如何知道滚动条需要的高度?

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

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

1 个答案:

答案 0 :(得分:0)

this是一个非常好的资源,您可以在底部下载示例项目。我认为您正在寻找的是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);
 }