From 9d4961af8647202c0aa1fd34017e61231501be5a Mon Sep 17 00:00:00 2001 From: Ano-sys Date: Sun, 23 Mar 2025 00:24:19 +0100 Subject: [PATCH] Added Undo and Redo --- ViewModels/MainWindowViewModel.cs | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/ViewModels/MainWindowViewModel.cs b/ViewModels/MainWindowViewModel.cs index d46931a..4140ca8 100644 --- a/ViewModels/MainWindowViewModel.cs +++ b/ViewModels/MainWindowViewModel.cs @@ -84,7 +84,8 @@ public class MainWindowViewModel : ViewModelBase private void OnCanvasPointerPressed(PointerPressedEventArgs? e) { if (e == null) return; - + if(UndoDrawingPoints.Count > 0) UndoDrawingPoints.Clear(); + IsDrawing = true; DrawingPoints.Add(new DrawingPoints(Brush, BrushThickness)); DrawingPoint = DrawingPoints[^1]; @@ -111,4 +112,26 @@ public class MainWindowViewModel : ViewModelBase { IsDrawing = false; } + + public void GlobalKeyUpHandler(KeyEventArgs e) + { + if (e.KeyModifiers != KeyModifiers.Control) return; + switch (e.Key) + { + case Key.Z: + if (DrawingPoints.Count > 0) + { + UndoDrawingPoints.Add(DrawingPoints[^1]); + DrawingPoints.Remove(DrawingPoints[^1]); + } + break; + case Key.Y: + if (UndoDrawingPoints.Count > 0) + { + DrawingPoints.Add(UndoDrawingPoints[^1]); + UndoDrawingPoints.Remove(UndoDrawingPoints[^1]); + } + break; + } + } }