Значок: icon.ico вшивается в exe
csc собирался без /win32icon, поэтому у exe не было значка вовсе, а окно пыталось сделать значок из icon.png через GetHicon — тот теряет альфу и не даёт нужных размеров. Теперь многоразмерный icon.ico вшит в exe, а окно берёт значок из себя же.
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user