我不知道如何在UWP上将位图转换为BitmapImage。不是WPF。
-C#-
Icon appIcon = System.Drawing.Icon.ExtractAssociatedIcon(path);
Bitmap bitmap = appIcon.ToBitmap();
BitmapImage bitmapImage = bitmap.toBitmapImage(); // It doesn't works.
DesktopIcon.Source = bitmapImage;
-XAML-
<Image Width="32" Height="32" x:Name="DesktopIcon"></Image>
您知道获取文件图标的其他方法吗?>
在UWP平台中,我们可以使用
GetThumbnailAsync
来获取文件的Thumbnail
,对于图像文件,我们可以获取空文件的缩略图,以避免获得图像预览。您可以直接使用以下方法。
public static class FileExtension { public async static Task<StorageItemThumbnail> GetFileIcon(this StorageFile file, uint size = 32) { StorageItemThumbnail iconTmb; var imgType = new[] { "bmp", "gif", "jpeg", "jpg", "png" }.FirstOrDefault(ext => file.Path.ToLower().EndsWith(ext)); if (imgType != null) { var dummy = await ApplicationData.Current.TemporaryFolder.CreateFileAsync("dummy." + imgType , CreationCollisionOption.ReplaceExisting); //may overwrite existing iconTmb = await dummy.GetThumbnailAsync(ThumbnailMode.SingleItem, size); } else { iconTmb = await file.GetThumbnailAsync(ThumbnailMode.SingleItem, size); } return iconTmb; } }
用法
var icon = await file.GetFileIcon();
var imgSource = new BitmapImage();
imgSource.SetSource(icon);
Myimage.Source = imgSource;