2011-11-09 31 views
1

如果我在我的scrollviewer中有一個virtualizingstackpanel,那麼我的scrollviewer如何知道滾動條需要的高度?virtualizingstackpanel和高度

例如,如果我有10,000個項目,它是如何知道我只在列表中滾動5%?

如果我不知道物品的大小怎麼辦?

回答

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); 
} 
+0

如果對象從未實現過,它如何知道高度? – zachary

+0

您可以根據物件數量和高度確定每個物品的高度 – tam