From 1177efcc582d158f3e018568a6fa0192c201e71d Mon Sep 17 00:00:00 2001 From: Ano-sys Date: Thu, 20 Feb 2025 23:19:34 +0100 Subject: [PATCH] Moved Menu into SplitView - Added Button to open SplitView --- SimpleDraw.csproj | 4 +- ViewModels/MainWindowViewModel.cs | 5 +- ViewModels/ViewModelBase.cs | 25 +++- Views/MainWindow.axaml | 184 ++++++++++++++++-------------- 4 files changed, 130 insertions(+), 88 deletions(-) diff --git a/SimpleDraw.csproj b/SimpleDraw.csproj index 1aa5d45..bf5f8f9 100644 --- a/SimpleDraw.csproj +++ b/SimpleDraw.csproj @@ -19,7 +19,7 @@ - - + + diff --git a/ViewModels/MainWindowViewModel.cs b/ViewModels/MainWindowViewModel.cs index 5b6a992..768299f 100644 --- a/ViewModels/MainWindowViewModel.cs +++ b/ViewModels/MainWindowViewModel.cs @@ -1,4 +1,5 @@ -using Avalonia; +using System; +using Avalonia; using Avalonia.Input; using Avalonia.Media; using CommunityToolkit.Mvvm.Input; @@ -11,6 +12,8 @@ public class MainWindowViewModel : ViewModelBase #pragma warning disable CA1822 // Mark members as static public MainWindowViewModel() { + DisplaySplitEvent = new RelayCommand(DisplaySplit); + ColorPalette = [ new ColorPickerButton diff --git a/ViewModels/ViewModelBase.cs b/ViewModels/ViewModelBase.cs index b9b14ba..ba4d0e7 100644 --- a/ViewModels/ViewModelBase.cs +++ b/ViewModels/ViewModelBase.cs @@ -1,4 +1,5 @@ -using System.Collections.ObjectModel; +using System; +using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations; using Avalonia.Input; using Avalonia.Media; @@ -36,4 +37,26 @@ public class ViewModelBase : ObservableObject get => _brushThickness; set => SetProperty(ref _brushThickness, value); } + + private double _buttonOffset = 0; + + public double ButtonOffset + { + get => _buttonOffset; + set => SetProperty(ref _buttonOffset, value); + } + + private bool _isSplitOpen = false; + + public bool IsSplitOpen + { + get => _isSplitOpen; + set => SetProperty(ref _isSplitOpen, value); + } + + public IRelayCommand DisplaySplitEvent { get; protected set; } + protected void DisplaySplit() + { + IsSplitOpen = !IsSplitOpen; + } } diff --git a/Views/MainWindow.axaml b/Views/MainWindow.axaml index 87705a0..38f02db 100644 --- a/Views/MainWindow.axaml +++ b/Views/MainWindow.axaml @@ -11,6 +11,9 @@ xmlns:componentModel="clr-namespace:CommunityToolkit.Mvvm.ComponentModel;assembly=CommunityToolkit.Mvvm" xmlns:system="clr-namespace:System;assembly=System.Runtime" x:DataType="vm:MainWindowViewModel" + TransparencyLevelHint="Transparent" + TransparencyBackgroundFallback="DimGray" + Background="Transparent" Icon="/Assets/avalonia-logo.ico" Title="SimpleDraw" Width="{Binding WindowWidth}" @@ -28,96 +31,109 @@ to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) --> - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +