В настоящее время я получаю собственный значок, вызывая SHGetFileInfo. Затем я конвертирую его в растровое изображение, используя следующий код. Растровое изображение в конечном итоге отображается в форме WPF.
Есть ли более быстрый способ сделать то же самое?
try
{
using (Icon i = Icon.FromHandle(shinfo.hIcon))
{
Bitmap bmp = i.ToBitmap();
MemoryStream strm = new MemoryStream();
bmp.Save(strm, System.Drawing.Imaging.ImageFormat.Png);
BitmapImage bmpImage = new BitmapImage();
bmpImage.BeginInit();
strm.Seek(0, SeekOrigin.Begin);
bmpImage.StreamSource = strm;
bmpImage.EndInit();
return bmpImage;
}
}
finally
{
Win32.DestroyIcon(hImgLarge);
}