2012-09-30 63 views
4

我想從資產的UI上顯示圖像文件。我設法將該項目存儲爲StorageFile。我如何顯示它?我試圖將其顯示在XAML <Image>標記的來源中。是否有可能將StorageFile轉換爲Image在Windows 8 Metro C中顯示StorageFile#

string path = @"Assets\mypicture.png"; 
StorageFile file = await InstallationFolder.GetFileAsync(path); 

回答

9

試試這個功能

public async Task<Image> GetImageAsync(StorageFile storageFile) 
{ 
     BitmapImage bitmapImage = new BitmapImage(); 
     FileRandomAccessStream stream = (FileRandomAccessStream)await storageFile.OpenAsync(FileAccessMode.Read); 
     bitmapImage.SetSource(stream); 
     Image image = new Image(); 
     image.Source = bitmapImage; 
     return image; 
} 
2

嘗試以下操作:

public async Task<BitmapImage> GetBitmapAsync(StorageFile storageFile) 
{ 
    BitmapImage bitmap = new BitmapImage(); 
    IAsyncOperation<IRandomAccessStream> read = storageFile.OpenReadAsync(); 
    IRandomAccessStream stream = await read; 
    bitmap.SetSource(stream); 

    return bitmap; 
} 

調用該函數是這樣的:

Image image = new Image(); 
image.Source = await GetBitmapAsync (file); 
+0

它說無法將類型' 'Windows.Storage.Streams.IRandomAccessStreamWithContentType''到'' Windows.Storage.Streams.FileRandomAccessStream'' – Lgn

+0

我修復了這個問題,請用上面的代碼再試一次。 – Legoless

1

image.Source =新位圖圖片(新的URI( 「文件://」 + storageFile.Path))

+1

這不適用於不在應用程序本地存儲中的文件,例如圖像庫中的圖像。該路徑不能用於訪問Windows應用商店應用中的這些外部文件,而只能訪問StorageFile對象。 –