From 87707bca1c2981cfc5a20f9ae13413edaf6199f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=8A=BC?= Date: Fri, 12 Jul 2024 19:03:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E5=85=A5=E5=85=A8=E5=B1=8F=E5=89=8D?= =?UTF-8?q?=E7=9A=84=E7=AA=97=E5=8F=A3=E7=8A=B6=E6=80=81=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=20=E6=94=B9=E4=B8=BA=E7=9B=91=E5=90=AC=20WindowStateChanged?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Ursa/Controls/TitleBar/CaptionButtons.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Ursa/Controls/TitleBar/CaptionButtons.cs b/src/Ursa/Controls/TitleBar/CaptionButtons.cs index 6b0ac86..6d9a3c2 100644 --- a/src/Ursa/Controls/TitleBar/CaptionButtons.cs +++ b/src/Ursa/Controls/TitleBar/CaptionButtons.cs @@ -40,6 +40,8 @@ public class CaptionButtons: Avalonia.Controls.Chrome.CaptionButtons Button.ClickEvent.AddHandler((o, args) => OnRestore(), _restoreButton); Button.ClickEvent.AddHandler((o, args) => OnMinimize(), _minimizeButton); Button.ClickEvent.AddHandler((o, args) => OnToggleFullScreen(), _fullScreenButton); + + Window.WindowStateProperty.Changed.Subscribe(WindowStateChanged); if (this.HostWindow is not null && !HostWindow.CanResize) { _restoreButton.IsEnabled = false; @@ -47,13 +49,20 @@ public class CaptionButtons: Avalonia.Controls.Chrome.CaptionButtons UpdateVisibility(); } + private void WindowStateChanged(AvaloniaPropertyChangedEventArgs e) + { + if (e.NewValue.Value == WindowState.FullScreen) + { + _oldWindowState = e.OldValue.Value; + } + } + protected override void OnToggleFullScreen() { if (HostWindow != null) { if (HostWindow.WindowState != WindowState.FullScreen) { - _oldWindowState = HostWindow.WindowState; HostWindow.WindowState = WindowState.FullScreen; } else