2014-09-23 28 views
0

我想在FlipView中顯示圖像(以StorageFile的集合形式給出)。 圖像是在一個自定義格式和解碼:帶有可變控件的FlipView

async Task<WritableBitmap> MyDecodeImage(StorageFile sf) { ... } 

WritableBitmap可以分配給image.Source。 可以有數百個文件,因此它們應該按需解碼而不是一次全部解碼。

如何聲明我的FlipView?它通常應該顯示Image s,但對於有解碼錯誤的文件,它應該顯示一條錯誤消息。

回答

0

使用大量代碼和ContainerContentChanging事件來啓動/取消加載圖像。使用優先列表確保您首先爲當前可見項目加載圖片,而不是虛擬化的內容快速顯示。使用StorageFile.GetThumbnail()而不是加載整個圖像,直到放大圖像以使用更少的內存並加快加載時間,特別是在系統已經緩存縮略圖之後。

一旦解碼任務完成 - 您可以編寫代碼來指定FlipViewItem中應顯示的內容。

+0

如果文件是Windows未知的格式,'StorageFile.GetThumbnail()'會給出什麼有趣的東西? – 0xF 2014-09-23 21:23:08

+0

我認爲你誤解我的問題是關於表現。不是這樣。我知道我可以在'FlipView.ItemTemplate'中放置一個'Image'。我問的是如何顯示一些項目的'Image'和其他項目的'TextBlock'? – 0xF 2014-09-23 21:26:18

+0

讓他們在XAML中使用'Visibility =「Collapsed」'切換到'Visibility.Visible'上你想變得可見。在'ItemTemplate'中放置一個'UserControl',以便能夠針對特定項目運行代碼。 – 2014-09-23 22:12:40