c# - 如何在 WPF 中显示 Windows 文件图标?

标签 c# wpf icons

目前,我通过调用 SHGetFileInfo 获取 native 图标。然后,我使用以下代码将其转换为位图。位图最终以 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);
        }

最佳答案

怎么样:

var icon = System.Drawing.Icon.ExtractAssociatedIcon(fileName);
var bmp = icon.ToBitmap()

关于c# - 如何在 WPF 中显示 Windows 文件图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7640570/

相关文章:

c# - 如何在 ASP.NET 中获取准确的总访客数

WPF - 如何在水平方向的堆栈面板内右对齐文本 block ?

c# - 显示实体和附加信息的最佳方法?

android - 减少工具栏上导航图标和 Logo 之间的填充

html - 如何在导航菜单中输入图标并使其悬停在子菜单上?

c# - Windows服务自动启动和停止,异常处理问题

c# - 服务器重启时如何从实例存储中加载具有多个工作流定义的可运行实例

c# - Microsoft Graph API 如何创建不记名 msal token

c# - 当用户单击带有 MVVM 的关闭按钮时,如何在 WPF 对话框中取消等待?

css - 从 icomoon 加载自定义字体