c# - 在代码中将透明PNG转换为System.Drawing.Icon

标签 c# .net wpf icons png

我希望将透明的 PNG 图像作为 ImageSource 转换为符合 PNG 透明度的 System.Drawing.Icon。

如果您将窗口的图标设置为 PNG ImageSource,WPF 可以以某种方式在内部执行此操作,但是我有什么方法可以手动执行此操作吗?具体来说,我需要这个来设置系统托盘通知图标,我真的想避免使用笨拙的 .ico 格式资源。

最佳答案

你可以写

Icon.FromHandle(image.GetHIcon())

You'll need to explicitly destroy the icon when you're done with it :

[DllImport("user32.dll", CharSet = CharSet.Auto)]
extern static bool DestroyIcon(IntPtr handle);

DestroyIcon(newIcon.Handle);

关于c# - 在代码中将透明PNG转换为System.Drawing.Icon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4899864/

相关文章:

c# - 带边框的单词表

c# - “元素”是无效的 XmlNodeType

wpf - Cefsharp 和视频标签 WebRTC

c# - 使用 PrintDocument 时出错

c# - 如何在 Visual Studio Code 中为 C# 函数、类生成代码注释?

wpf - 状态栏不总是更新

c# - 在 C# 和 WPF 中,应该使用什么设计模式通过用户界面动态地使用 "changing object' s 类?

c# - 复杂对象/嵌套映射中的自动映射器和映射列表

c# - 为什么 IEnumerable.Count() 的上限为 200?

c# - 异步/等待内存缓存的线程安全