2011-11-02 74 views
1

我需要用我的Facebook好友創建一個包裝面板,這意味着itemcount超過400,並且需要5-10秒才能加載所有項目。爲WP7虛擬化WrapPanel

<ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <toolkit:WrapPanel/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 

該代碼將是一件好事,但它把所有的元素在1行...:

<ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <VirtualizingStackPanel Orientation="Horizontal"/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 

任何想法如何添加項目到包木窗或VirtualizingStackPanel如何添加虛擬化到WrapPanel :

+0

有一個[commercial](http://www.binarymission.co.uk/Products/WPF_SL/virtualizingwrappanel_wpf_sl.htm)版本的VirtualizingWrapPanel可用。但我不能保證它的質量,因爲我從來沒有使用它。 – CodeNaked

+0

有一個這樣做的項目。請參閱[此鏈接](http://virtualwrappanel.codeplex.com/)。 – abhinav

+0

@CodeNaked是的,我發現我自己的商業版本,但我更喜歡免費版本。 –

回答

0

我用它創建一個簡單的列表框,每個元素包含一個帶有4個圖像的stackpanel。歡呼

+0

From here:http://debugmode.net/2011/08/20/nested-listbox-binding-in-silverlight-and-windows-phone-7/ –

0

那麼,與WrapPanel整個點是它調整到內容的大小。所以它需要渲染所有項目來確定大小。

所以,當談到虛擬化該部分時,你幾乎不走運。但是,如果您正在加載400張圖片,則可以使用LowProfileImageLoader來大幅提高加載速度。

你可以找到LowProfileImageLoader source code on my GitHub的鏡子。

+0

比在VirtualizingStackPanel中包裝物品的情況如何?有沒有解決方法? –