From 76ff633d7c89de181a8d061e8a3eb7c1bca32736 Mon Sep 17 00:00:00 2001 From: Lin Date: Wed, 2 Sep 2026 08:41:24 +0000 Subject: [PATCH] Fix hidden Win32 TrayIcon appearing after icon updates Preserve the current tray icon registration state when updating its icon, so a hidden TrayIcon remains hidden until SetIsVisible(true) is called. (#22125) --- src/Windows/Avalonia.Win32/TrayIconImpl.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Windows/Avalonia.Win32/TrayIconImpl.cs b/src/Windows/Avalonia.Win32/TrayIconImpl.cs index a53d461833..6513ff89b8 100644 --- a/src/Windows/Avalonia.Win32/TrayIconImpl.cs +++ b/src/Windows/Avalonia.Win32/TrayIconImpl.cs @@ -94,7 +94,7 @@ namespace Avalonia.Win32 { _iconImpl = (IconImpl?)icon; _iconStale = true; - UpdateIcon(); + UpdateIcon(!_iconAdded); } /// @@ -376,6 +376,10 @@ namespace Avalonia.Win32 if (!_disposedValue) { UpdateIcon(true); + + s_trayIcons.Remove(_uniqueId); + _icon?.Dispose(); + _icon = null; _disposedValue = true; }