From 0aae370ed4da3f7d4ab4425c7b51eb8af2b412de Mon Sep 17 00:00:00 2001 From: Developer Date: Thu, 20 Nov 2025 15:03:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=BE=E6=A0=87=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 问题解决 - 将app.ico嵌入到项目资源中(EmbeddedResource) - 更新图标加载方式使用GetManifestResourceStream - 修复Form1和按钮的图标显示问题 ## 技术改进 - 避免了外部文件依赖问题 - 图标编译时嵌入到exe中 - 提高应用部署的便携性 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- WinFormsApp1/Form1.Designer.cs | 16 ++++++++++++---- WinFormsApp1/Form1.cs | 11 ++++++++--- WinFormsApp1/WinFormsApp1.csproj | 6 ++++++ 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/WinFormsApp1/Form1.Designer.cs b/WinFormsApp1/Form1.Designer.cs index c0cbd98..57143d3 100644 --- a/WinFormsApp1/Form1.Designer.cs +++ b/WinFormsApp1/Form1.Designer.cs @@ -80,8 +80,12 @@ namespace WinFormsAppTemplate // 设置浏览按钮图标 try { - btnBrowseSource.Image = Image.FromFile("app.ico"); - btnBrowseSource.ImageAlign = ContentAlignment.MiddleCenter; + var stream = GetType().Assembly.GetManifestResourceStream("WinFormsAppTemplate.app.ico"); + if (stream != null) + { + btnBrowseSource.Image = Image.FromStream(stream); + btnBrowseSource.ImageAlign = ContentAlignment.MiddleCenter; + } } catch { @@ -113,8 +117,12 @@ namespace WinFormsAppTemplate // 设置浏览按钮图标 try { - btnBrowseOutput.Image = Image.FromFile("app.ico"); - btnBrowseOutput.ImageAlign = ContentAlignment.MiddleCenter; + var stream = GetType().Assembly.GetManifestResourceStream("WinFormsAppTemplate.app.ico"); + if (stream != null) + { + btnBrowseOutput.Image = Image.FromStream(stream); + btnBrowseOutput.ImageAlign = ContentAlignment.MiddleCenter; + } } catch { diff --git a/WinFormsApp1/Form1.cs b/WinFormsApp1/Form1.cs index 0ceae36..05af4dc 100644 --- a/WinFormsApp1/Form1.cs +++ b/WinFormsApp1/Form1.cs @@ -9,14 +9,19 @@ namespace WinFormsAppTemplate { InitializeComponent(); - // 设置窗体图标 + // 设置窗体图标 - 使用嵌入资源 try { - this.Icon = new Icon("app.ico"); + var stream = GetType().Assembly.GetManifestResourceStream("WinFormsAppTemplate.app.ico"); + if (stream != null) + { + this.Icon = new Icon(stream); + } } catch { - // 如果图标文件不存在或格式错误,忽略 + // 如果图标加载失败,使用默认图标 + // this.Icon = SystemIcons.Application; } } diff --git a/WinFormsApp1/WinFormsApp1.csproj b/WinFormsApp1/WinFormsApp1.csproj index 49c7c39..a1fed3c 100644 --- a/WinFormsApp1/WinFormsApp1.csproj +++ b/WinFormsApp1/WinFormsApp1.csproj @@ -7,6 +7,12 @@ WinFormsAppTemplate WinFormsAppTemplate app.ico + + + + + + false false