WinRT:提取与文件关联的图标?

时间:2014-07-30 13:22:53

标签: c# windows-runtime icons thumbnails uwp

如何在WinRT Apps中获取与特定文件(而非缩略图)相关联的图像?

2 个答案:

答案 0 :(得分:4)

查看Guidelines for thumbnails似乎ThumbnailMode.Music与大多数文件类型的StorageFile.GetThumbnailAsync()一起使用时可能会显示一个图标 - 除了具有关联相册艺术的音乐文件外,尽管我'我希望看到更健壮的方式来获得图标。各种MSDN论坛主题似乎表明虽然GetThumbnailAsync()是可行的。

答案 1 :(得分:2)

我昨天也找到了这个解决方案。但是使用ThumbnailMode.Music,您可以获得带有应用背景颜色的Icon。

最后我发现,ThumbnailMode.SingleItem我得到的结果更好,没有背景。所以首先我创建一个具有正确文件扩展名的空文件,然后我尝试获取缩略图:

string filename = "_tmp_ext" + fileextension;
Windows.Storage.StorageFile file = 
  await ApplicationData.Current.TemporaryFolder.CreateFileAsync(
    filename, CreationCollisionOption.OpenIfExists);
FileProperties.StorageItemThumbnail thumb = 
  await file.GetThumbnailAsync(FileProperties.ThumbnailMode.SingleItem, 
    16, FileProperties.ThumbnailOptions.ResizeThumbnail);
if (thumb != null) {
  BitmapImage bitmapImage = new BitmapImage();
  bitmapImage.SetSource(thumb.CloneStream());
  /* ... */
}

没有创建虚拟文件的任何其他解决方案?