From bfb3dd671bb98925d80e8567c10fd6918faeaaae Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Sat, 21 Mar 2026 22:21:23 +0800 Subject: [PATCH] Add fullscreen toggle functionality and update popover alignment (#773) * fix: update Height binding and add VerticalAlignment to fullscreen popover. * feat: add fullscreen toggle functionality with F11 key. --- .../Views/MainWindow.axaml.cs | 27 +++++++++++++++++++ .../Controls/WindowDrawnDecorations.axaml | 3 ++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/demo/Semi.Avalonia.Demo/Views/MainWindow.axaml.cs b/demo/Semi.Avalonia.Demo/Views/MainWindow.axaml.cs index 505265d..6e98169 100644 --- a/demo/Semi.Avalonia.Demo/Views/MainWindow.axaml.cs +++ b/demo/Semi.Avalonia.Demo/Views/MainWindow.axaml.cs @@ -1,11 +1,38 @@ using Avalonia.Controls; +using Avalonia.Input; namespace Semi.Avalonia.Demo.Views; public partial class MainWindow : Window { + private WindowState _stateBeforeFullScreen = WindowState.Normal; + public MainWindow() { InitializeComponent(); + KeyDown += FullScreenKeyDown; + } + + private void FullScreenKeyDown(object? sender, KeyEventArgs e) + { + if (e.Key == Key.F11) + { + + ToggleFullScreen(); + e.Handled = true; + } + } + + private void ToggleFullScreen() + { + if (WindowState is not WindowState.FullScreen) + { + _stateBeforeFullScreen = WindowState; + WindowState = WindowState.FullScreen; + } + else + { + WindowState = _stateBeforeFullScreen; + } } } \ No newline at end of file diff --git a/src/Semi.Avalonia/Controls/WindowDrawnDecorations.axaml b/src/Semi.Avalonia/Controls/WindowDrawnDecorations.axaml index 820fec8..fd7153c 100644 --- a/src/Semi.Avalonia/Controls/WindowDrawnDecorations.axaml +++ b/src/Semi.Avalonia/Controls/WindowDrawnDecorations.axaml @@ -120,8 +120,9 @@