修复:后台启动时,闪一下的问题

This commit is contained in:
fonaix 2024-12-01 04:13:09 +08:00
parent d3a0b44247
commit e3a90442a9
3 changed files with 20 additions and 4 deletions

View file

@ -31,9 +31,17 @@ public partial class App : Application
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{ {
AppHandler.Instance.InitComponents(); AppHandler.Instance.InitComponents();
desktop.ShutdownMode = Avalonia.Controls.ShutdownMode.OnExplicitShutdown;
desktop.Exit += OnExit; desktop.Exit += OnExit;
desktop.MainWindow = new MainWindow(); var mainWindow = new MainWindow();
if (!AppHandler.Instance.Config.UiItem.AutoHideStartup)
{
desktop.MainWindow = mainWindow;
}
else
{
desktop.MainWindow = null;
}
} }
base.OnFrameworkInitializationCompleted(); base.OnFrameworkInitializationCompleted();

View file

@ -397,6 +397,10 @@ namespace v2rayN.Desktop.Views
if (bl) if (bl)
{ {
this.Show(); this.Show();
if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
desktop.MainWindow = this;
}
if (this.WindowState == WindowState.Minimized) if (this.WindowState == WindowState.Minimized)
{ {
this.WindowState = WindowState.Normal; this.WindowState = WindowState.Normal;

View file

@ -77,9 +77,13 @@ namespace v2rayN.Desktop.Views
{ {
if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{ {
desktop.MainWindow.Icon = AvaUtils.GetAppIcon(_config.SystemProxyItem.SysProxyType); var icon = AvaUtils.GetAppIcon(_config.SystemProxyItem.SysProxyType);
if (desktop.MainWindow != null)
{
desktop.MainWindow.Icon = icon;
}
var iconslist = TrayIcon.GetIcons(Application.Current); var iconslist = TrayIcon.GetIcons(Application.Current);
iconslist[0].Icon = desktop.MainWindow.Icon; iconslist[0].Icon = icon;
TrayIcon.SetIcons(Application.Current, iconslist); TrayIcon.SetIcons(Application.Current, iconslist);
} }
} }