2014-10-04 70 views
2

我正在創建Windows應用商店(目標8.1,WPF和C#),並使用FlipView控件在頁面之間進行導航,以獲得一些文章縮略圖的24張圖片。當我的頁數很少時,一切都很順利,很好。但在更多頁面的情況下,它有時會滯後,對用戶來說不是很舒服。Windows 8.1應用程序中的FlipView呈現問題

還有就是我FlipView聲明的一部分:

應該提高性能和渲染速度是 VirtualizingStackPanel.VirtualizationMode,但在我看來,它的行爲類似於
<FlipView Name="FlipView" ItemsSource="{Binding ArticlesPages}" 
      VirtualizingStackPanel.VirtualizationMode="Recycling" 
      SelectedIndex="{Binding SelectedPageIndex, Mode=TwoWay}"> 

一件事。

你知道如何提高FlipView的性能嗎?我在平板電腦和帶有i5處理器和大容量RAM的筆記本電腦上嘗試過它,但它仍然不是我想要的。

回答

1

如果你有CPU /內存昂貴的部分是圖像/縮略圖加載,你可以看看我的FlipViewBehavior - ImageExtensions library。它尚未處於生產就緒狀態(儘管它起作用 - 文檔幾乎不存在atm) - 但我打算很快將它合併到winam xaml工具包中(當清理完時,在〜個月內)。主要思想是:異步加載,停止加載距離當前項目太遠的項目,清除內存,處理不可見的項目(在內存中最多保留三個加載的圖片) - 在鏈接中手寫CircularQueue以上。我用它在Windows Phone上顯示大量過濾圖像,效果很好。

VirtualizationPanel肯定讓你的虛擬化 - 但它意味着會有一些FlipViewItems容器(例如,如果你有ItemsSource與1000個項目會有例如〜如果回收模式是會被重用10-15 UI容器板啓用)。然而,如果你爲你的ItemsSource加載任何昂貴的內存資源 - 無論如何它會佔用內存。

+0

感謝您的回覆。你認爲這是由圖像加載引起的嗎?因爲看起來當我轉到另一個頁面時,圖像已經加載。看起來WPF在刷入頁面時遇到問題。另一點是我在一頁上有24張照片。您的ImageExtensions庫是否適合我的情況? – 2014-10-06 17:43:08

+0

如果你能夠顯示你加載圖片的方式,這將是非常好的,所以我可以告訴你更好的幫助。看起來像所有的圖像加載頁面初始化(低性能)。順便說一句。你使用WPF還是WinRT? – fex 2014-10-06 18:37:57

+0

我只在服務器上設置圖片url路徑。這是我的代碼,我如何顯示圖像https://gist.github.com/cechovsky/aadcf97f9f445742608a。但在我看來,加載圖片表現良好。我只有在頁面之間滑動時纔有問題。圖片已經加載,但刷卡不順暢。非常感謝 – 2014-10-06 19:59:04

相關問題