diff --git a/PixiEditor/ViewModels/SubViewModels/Main/StylusViewModel.cs b/PixiEditor/ViewModels/SubViewModels/Main/StylusViewModel.cs index e1981babd..f937a4362 100644 --- a/PixiEditor/ViewModels/SubViewModels/Main/StylusViewModel.cs +++ b/PixiEditor/ViewModels/SubViewModels/Main/StylusViewModel.cs @@ -1,6 +1,7 @@ using System.Windows; using System.Windows.Input; using GalaSoft.MvvmLight.CommandWpf; +using PixiEditor.Models.Position; using PixiEditor.Models.Tools; using PixiEditor.Models.Tools.Tools; using PixiEditor.Models.UserPreferences; @@ -42,6 +43,8 @@ public bool UseTouchGestures public RelayCommand StylusUpCommand { get; } + public RelayCommand StylusOutOfRangeCommand { get; } + public RelayCommand StylusGestureCommand { get; } public StylusViewModel(ViewModelMain owner) @@ -49,6 +52,7 @@ public StylusViewModel(ViewModelMain owner) { StylusDownCommand = new(StylusDown); StylusUpCommand = new(StylusUp); + StylusOutOfRangeCommand = new(StylusOutOfRange); StylusGestureCommand = new(StylusSystemGesture); isPenModeEnabled = IPreferences.Current.GetLocalPreference(nameof(IsPenModeEnabled)); @@ -69,6 +73,11 @@ private void UpdateUseTouchGesture() } } + private void StylusOutOfRange(StylusEventArgs e) + { + Owner.BitmapManager.HighlightPixels(new Coordinates(-1, -1)); + } + private void StylusSystemGesture(StylusSystemGestureEventArgs e) { if (e.SystemGesture == SystemGesture.Drag || e.SystemGesture == SystemGesture.Tap) diff --git a/PixiEditor/Views/MainWindow.xaml b/PixiEditor/Views/MainWindow.xaml index 14333958e..ef59dcd05 100644 --- a/PixiEditor/Views/MainWindow.xaml +++ b/PixiEditor/Views/MainWindow.xaml @@ -290,6 +290,7 @@ StylusButtonDownCommand="{Binding XamlAccesibleViewModel.StylusSubViewModel.StylusDownCommand}" StylusButtonUpCommand="{Binding XamlAccesibleViewModel.StylusSubViewModel.StylusUpCommand}" StylusGestureCommand="{Binding XamlAccesibleViewModel.StylusSubViewModel.StylusGestureCommand}" + StylusOutOfRangeCommand="{Binding XamlAccesibleViewModel.StylusSubViewModel.StylusOutOfRangeCommand}" UseTouchGestures="{Binding XamlAccesibleViewModel.StylusSubViewModel.UseTouchGestures}" IsUsingZoomTool="{Binding XamlAccesibleViewModel.ToolsSubViewModel.ActiveTool, Converter={converters:IsSpecifiedTypeConverter SpecifiedType={x:Type tools:ZoomTool}}}" IsUsingMoveViewportTool="{Binding XamlAccesibleViewModel.ToolsSubViewModel.ActiveTool, Converter={converters:IsSpecifiedTypeConverter SpecifiedType={x:Type tools:MoveViewportTool}}}" diff --git a/PixiEditor/Views/UserControls/DrawingViewPort.xaml b/PixiEditor/Views/UserControls/DrawingViewPort.xaml index 536472e25..bb575d332 100644 --- a/PixiEditor/Views/UserControls/DrawingViewPort.xaml +++ b/PixiEditor/Views/UserControls/DrawingViewPort.xaml @@ -44,6 +44,10 @@ + + + SetValue(StylusGestureCommandProperty, value); } + public ICommand StylusOutOfRangeCommand + { + get => (ICommand)GetValue(StylusOutOfRangeCommandProperty); + set => SetValue(StylusOutOfRangeCommandProperty, value); + } + public double MouseXOnCanvas { get => (double)GetValue(MouseXOnCanvasProperty);