diff --git a/src/ST.Client.Desktop.Avalonia.App/App.axaml.cs b/src/ST.Client.Desktop.Avalonia.App/App.axaml.cs index 74867e614..658f0a41f 100644 --- a/src/ST.Client.Desktop.Avalonia.App/App.axaml.cs +++ b/src/ST.Client.Desktop.Avalonia.App/App.axaml.cs @@ -322,7 +322,8 @@ namespace System.Application.UI public override void RegisterServices() { IViewModelBase.IsInDesignMode = ApplicationLifetime == null; - if (ViewModelBase.IsInDesignMode) Startup.Init(DILevel.MainProcess | DILevel.GUI); + if (ViewModelBase.IsInDesignMode) + Startup.Init(DILevel.MainProcess | DILevel.GUI); AvaloniaLocator.CurrentMutable.Bind().ToConstant(DI.Get()); base.RegisterServices(); @@ -484,7 +485,20 @@ namespace System.Application.UI #pragma warning restore CA1416 // 验证平台兼容性 } } - + /// + /// 设置当前打开窗口的AvaloniaWinodw背景透明材质 + /// + /// + public void SetAllWindowransparencyMateria(int level) + { + if (Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + foreach (var window in desktop.Windows.Where(x => x.IsActive)) + { + window.TransparencyLevelHint = (WindowTransparencyLevel)level; + } + } + } /// /// Exits the app by calling Shutdown() on the IClassicDesktopStyleApplicationLifetime. diff --git a/src/ST.Client.Desktop.Avalonia/Application/Services/Implementation/AvaloniaWindowManagerImpl.cs b/src/ST.Client.Desktop.Avalonia/Application/Services/Implementation/AvaloniaWindowManagerImpl.cs index 0f1c9aef7..be5dd4f8d 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/Services/Implementation/AvaloniaWindowManagerImpl.cs +++ b/src/ST.Client.Desktop.Avalonia/Application/Services/Implementation/AvaloniaWindowManagerImpl.cs @@ -222,7 +222,11 @@ namespace System.Application.Services.Implementation { try { - app.CloseWindow(vm); + if (app.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + var window = desktop.Windows.FirstOrDefault(x => x.DataContext == vm); + window?.Close(); + } } catch (Exception e) { @@ -235,7 +239,12 @@ namespace System.Application.Services.Implementation { try { - return app.IsVisibleWindow(vm); + if (app.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + var window = desktop.Windows.FirstOrDefault(x => x.DataContext == vm); + return window?.IsVisible == true; + } + return false; } catch (Exception e) { @@ -249,7 +258,11 @@ namespace System.Application.Services.Implementation { try { - app.HideWindow(vm); + if (app.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + var window = desktop.Windows.FirstOrDefault(x => x.DataContext == vm); + window?.Hide(); + } } catch (Exception e) { @@ -262,7 +275,11 @@ namespace System.Application.Services.Implementation { try { - app.ShowWindowNoParent(vm); + if (app.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + var window = desktop.Windows.FirstOrDefault(x => x.DataContext == vm); + window?.Show(); + } } catch (Exception e) { diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/IAvaloniaApplication.cs b/src/ST.Client.Desktop.Avalonia/Application/UI/IAvaloniaApplication.cs index 4ae14fbda..dceed2389 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/IAvaloniaApplication.cs +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/IAvaloniaApplication.cs @@ -63,51 +63,6 @@ namespace System.Application.UI window.Show(); } - /// - /// 根据WindowViewModel显示window - /// - /// - void ShowWindowNoParent(WindowViewModel vm) - { - if (Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - var window = desktop.Windows.FirstOrDefault(x => x.DataContext == vm); - window?.Show(); - } - } - - /// - /// 根据WindowViewModel关闭window - /// - /// - void CloseWindow(WindowViewModel vm) - { - if (Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - var window = desktop.Windows.FirstOrDefault(x => x.DataContext == vm); - window?.Close(); - } - } - - bool IsVisibleWindow(WindowViewModel vm) - { - if (Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - var window = desktop.Windows.FirstOrDefault(x => x.DataContext == vm); - return window?.IsVisible == true; - } - return false; - } - - void HideWindow(WindowViewModel vm) - { - if (Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - var window = desktop.Windows.FirstOrDefault(x => x.DataContext == vm); - window?.Hide(); - } - } - /// /// 获取当前渲染子系统名称 /// diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Styles/Settings.xaml b/src/ST.Client.Desktop.Avalonia/Application/UI/Styles/Settings.xaml index aedf8a031..3d9a4416c 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Styles/Settings.xaml +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Styles/Settings.xaml @@ -5,13 +5,10 @@ - - - - - - + + + @@ -115,7 +112,7 @@