c# - 得到 .PNG 文件。希望嵌入的图标资源在表单标题栏上显示为图标

标签 c# .net winforms

这是一道面试题。鉴于 Visual Studio 2008 和一个保存为 .PNG 文件的图标,他们需要将图像作为嵌入式资源并用作表单标题栏中的图标。

我正在寻找这个问题的模型答案,包括(有效!)代码和任何 Visual Studio 技巧。 (标准答案是如果我下次遇到它应该能让我得到这份工作的答案。)

具体来说,我不知道如何在图像成为嵌入式资源后加载它,也不知道如何将它作为标题栏的图标。

作为部分解决方案,忽略嵌入位,我将资源复制到输出目录并尝试了以下操作:-

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.Icon = new Icon("Resources\\IconImage.png");
    }
}

失败并出现错误“参数‘图片’必须是可用作图标的图片。”

我假设 .PNG 文件实际上需要是 .ICO,但我看不出如何进行转换。这个假设是正确的还是存在其他问题?

最佳答案

启动 VS,启动新的 Windows 应用程序。打开属性表,将 .png 文件添加为资源(在本例中为: glider.png )。从这里开始,您可以访问作为位图文件的资源,如 WindowsFormsApplication10.Properties.Resources.glider

将其用作应用程序图标的代码:

 public Form1()
        {
            InitializeComponent();
            Bitmap bmp = WindowsFormsApplication10.Properties.Resources.glider;
            this.Icon = Icon.FromHandle(bmp.GetHicon());
        }

关于c# - 得到 .PNG 文件。希望嵌入的图标资源在表单标题栏上显示为图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/154119/

相关文章:

c# - <ImportWindowsDesktopTargets> 在 try-convert 生成的 *.csproj 中做什么?

C# entity framework 总和时间跨度

c# - LINQ优化的问题

c# - 在 C# 中比较字符串和对象

c# - 我可以为 C# Windows 应用程序拖放功能选择自定义图像吗?

c# - 如何使用任何 PayPal SDK 检查付款状态

c# - 如何对 Visual3D 或 UIElement3D 等 3D 元素使用数据绑定(bind)

c# - 如何管理 WinForms 应用程序的大型界面?

c# - 在c#中运行时设置 Crystal 报表数据源

C# - 将大型 (150MB) 文本文件读入富文本框