From cbe32f7bdf80a08f5cda2e1e7bc8cdbdc3f5c332 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Thu, 4 Apr 2024 23:10:49 +0200 Subject: [PATCH] Add F11 fullscreen functionality --- src/Markdowser/ViewModels/MainWindowViewModel.cs | 9 +++++++++ src/Markdowser/Views/MainWindow.axaml | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Markdowser/ViewModels/MainWindowViewModel.cs b/src/Markdowser/ViewModels/MainWindowViewModel.cs index cf000cf..319ae1a 100644 --- a/src/Markdowser/ViewModels/MainWindowViewModel.cs +++ b/src/Markdowser/ViewModels/MainWindowViewModel.cs @@ -29,6 +29,7 @@ public partial class MainWindowViewModel : ViewModelBase private ContentViewModelBase content; private TabItem currentTab = null!; + private WindowState windowState; private bool showSidePanel; private bool isBusy; private int progress; @@ -52,6 +53,12 @@ public partial class MainWindowViewModel : ViewModelBase } } + public WindowState WindowState + { + get => windowState; + set => this.RaiseAndSetIfChanged(ref windowState, value); + } + public ContentViewModelBase Content { get => content; @@ -143,6 +150,8 @@ public partial class MainWindowViewModel : ViewModelBase this.RaisePropertyChanged(nameof(CloseTabEnabled)); }); + public ICommand ToggleFullScreen => ReactiveCommand.Create(() => WindowState = WindowState == WindowState.FullScreen ? WindowState.Normal : WindowState.FullScreen); + private MarkdownContentViewModel DefaultContent => new("New Tab", new StringBuilder() .AppendLine($"![Logo](avares://Markdowser/Assets/Markdowser-{(Settings.Current.DarkMode ? "Dark" : "Light")}-Transparent.png)") .AppendLine() diff --git a/src/Markdowser/Views/MainWindow.axaml b/src/Markdowser/Views/MainWindow.axaml index 004a363..4b2da25 100644 --- a/src/Markdowser/Views/MainWindow.axaml +++ b/src/Markdowser/Views/MainWindow.axaml @@ -11,7 +11,7 @@ x:DataType="vm:MainWindowViewModel" Icon="{Binding Icon}" Title="{Binding Title}" - Loaded="Window_Loaded"> + Loaded="Window_Loaded" WindowState="{Binding WindowState}">