2011-11-04 104 views
3

我有一個ListView是顯式填充(無綁定)與ListViewItems。 大部分物品需要可見,其他物品應保持摺疊狀態。所有的項目都是一樣的高度。ListView - 滾動條高度不斷變化,因爲我滾動

的問題是,如果我有100項和第60可見,底部40處於收縮狀態中,滾動條的基礎上,假設高度成爲的東西,所有的100個項目處於可見狀態和滾動條的高度變得小於它應該是。但是當我滾動到60時,它意識到其餘40處於摺疊狀態,因此增加了滾動條的高度以使其適合列表視圖中的60個項目。

我最初認爲這可能是因爲虛擬化。但我沒有任何數據綁定到列表視圖。我也嘗試將項目的高度設置爲0,這需要處於摺疊狀態,這不會給我想要的結果。

我需要的是,如果有60個項目可見並且40個摺疊,那麼滾動條的高度應該僅基於列表視圖中的60個項目,並且應該保持不變。 是否有可能實現?

回答

2

我不確定是什麼讓你認爲它不是虛擬化,因爲這是它必須的。請嘗試關閉虛擬化:

<ListView VirtualizingStackPanel.IsVirtualizing="False" ... 
+0

我想是因爲http://social.msdn.microsoft.com/forums/en-US/wpf/thread/8727eb5b-03ae-449d-a7f0-3f0e71cee58f –

+0

你可以張貼一些代碼,這是因爲虛擬化的不。 – Tan

4

我有完全相同的問題,答案可以在這裏找到:Listbox scrollbar thumb changes size when content is variable height

不久,在列表框添加ScrollViewer.CanContentScroll="False"和滾動條都會有一定的高度,無論在數量的摺疊物品。

順便說一下,我知道這個問題已經快2年了,但我想留下來供將來參考。

+0

+1優秀的答案。 –