C# WinForms 图标替换完全指南
C# WinForms 替换图标分两种:对应你截图里的 EXE 文件图标(资源管理器里显示),和运行后窗口左上角的标题栏图标,都可以在项目里直接设置。
一、替换 EXE 文件的图标(资源管理器里显示的图标)
这是最核心的设置,一次编译永久生效,输出的 exe 文件图标会直接替换。
操作步骤
-
在 Visual Studio 右侧「解决方案资源管理器」中,右键你的项目
WindowInfoSpy→ 选择 属性 -
左侧菜单切换到 应用程序 选项卡
-
找到「图标和清单」区域,点击「图标」右侧的 浏览按钮(...)
-
选中你准备好的
.ico格式图标文件,保存项目 -
重新「生成解决方案」,编译后的 exe 图标就替换完成了
💡 小提示:Windows 有图标缓存,替换后如果看起来没变化,把 exe 移动到其他文件夹,或者重启资源管理器就能看到新图标。
二、替换运行后窗口左上角的图标
你的代码是全动态创建界面,直接在 InitCustomUI() 方法里加一行代码即可,可以和 exe 用同一个 ico 文件。
方法 1:直接加载本地文件(最简单)
在 InitCustomUI() 方法开头添加:
// 替换成你的 ico 文件路径,建议和 exe 放同一目录
this.Icon = new Icon("app.ico");
方法 2:嵌入程序内部(推荐,不依赖外部文件)
适合把图标编译进 exe,不用单独带 ico 文件:
-
右键项目 → 添加 → 现有项,选择你的 ico 文件(比如命名为
app.ico) -
选中刚添加的
app.ico,在属性窗口把「生成操作」改为 嵌入的资源 -
在
InitCustomUI()里添加代码:
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
this.Icon = new Icon(asm.GetManifestResourceStream("WindowInfoSpy.app.ico"));
三、图标格式要求
-
必须是 **
.ico** 格式:不能直接用 JPG/PNG,需要转换成 ico 格式。 -
建议使用多尺寸 ico:包含 16×16、32×32、48×48 三种尺寸,这样在桌面小图标、大图标、任务栏、窗口标题栏显示都清晰,不会模糊。
-
如果只有 PNG 图片,可以用在线 ico 转换工具生成多尺寸的 ico 文件。
补充:一键统一图标
如果你希望「exe 文件图标 + 窗口标题栏图标 + 任务栏图标」全部是同一个,只做第一步项目属性设置就足够了:
-
任务栏图标会自动沿用 exe 的图标
-
窗口标题栏图标默认也会继承项目图标,个别情况不生效的话,再加一行代码设置即可