新建一个类,并添加方法
其中ImageSource为抽象类
class ImageSourceConvert
{
public static ImageSource ToImageSource(Icon icon)
{
ImageSource imageSource = Imaging.CreateBitmapSourceFromHIcon(
icon.Handle,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
return imageSource;
}
}
参考来源连接
在链接上面的源码中稍微修改后,经测试ok.
整个新建类的源码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Windows.Media;
using System.Windows.Interop;
using System.Windows;
using System.Windows.Media.Imaging;
namespace WpfAWT
{
class ImageSourceConvert
{
public static ImageSource ToImageSource(Icon icon)
{
ImageSource imageSource = Imaging.CreateBitmapSourceFromHIcon(
icon.Handle,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
return imageSource;
}
}
}
在主程序中的使用案例:
private void btnRead_Click(object sender, RoutedEventArgs e)
{
string initialSource = @"D:\AWT\MyProgram\ECOM串口助手 V2.80.exe.lnk"; //需要读取的快捷方式路径
var uri = System.Drawing.Icon.ExtractAssociatedIcon(initialSource);
//var image = new BitmapImage();
// var image = uri.ToBitmap();
//System.Windows.Controls.Image image = new System.Windows.Controls.Image();
//System.Drawing.Image img = System.Drawing.Image.FromHbitmap(uri.ToBitmap().GetHbitmap());
ProgramImg.Source = ImageSourceConvert.ToImageSource(uri);
}
其中,uri是用ExtractAssociatedIcon通过快捷方式的地址获取Icon类型的图标,然后使用ImageSourceConvert类中的ToImageSource方法将Icon类型转换为ImageSource类型,用于WPF的Image控件的显示。