Значок: icon.ico вшивается в exe

csc собирался без /win32icon, поэтому у exe не было значка вовсе, а окно
пыталось сделать значок из icon.png через GetHicon — тот теряет альфу
и не даёт нужных размеров. Теперь многоразмерный icon.ico вшит в exe,
а окно берёт значок из себя же.
This commit is contained in:
Alex Cube
2026-08-26 16:51:47 +03:00
parent 46ea8a9296
commit 9e25f4de5d
4 changed files with 9 additions and 9 deletions
+5 -8
View File
@@ -78,14 +78,11 @@ class Tray : Form
tray.Visible = true;
tray.DoubleClick += (s, e) => Restore();
// Значок окна — картинка проекта, если она рядом; значок в трее всё
// равно рисуется цветом состояния, там картинке места нет.
var png = Path.Combine(here, "icon.png");
if (File.Exists(png))
try { using (var bmp = new Bitmap(png)) Icon = Icon.FromHandle(bmp.GetHicon()); }
catch { Icon = Dot(Color.Gray); }
else
Icon = Dot(Color.Gray);
// Значок окна берём из самого exe: icon.ico вшит в него при сборке
// (/win32icon), поэтому рядом ничего лежать не обязано. Значок в трее
// всё равно рисуется цветом состояния, там картинке места нет.
try { Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath); }
catch { Icon = Dot(Color.Gray); }
Mark(Color.Gray, "запуск…");
poll.Interval = 1000;