feat: implement and move touch controls to separate namespace

This commit is contained in:
2026-05-13 12:22:54 +03:00
parent 9f37ca9610
commit ec95eef375
4 changed files with 83 additions and 42 deletions
+41
View File
@@ -0,0 +1,41 @@
using Avalonia.Controls;
using Avalonia.Input;
using GSS2.ViewModels;
using GSS2.Views;
namespace GSS2.Controls;
public class TouchNumericUpDown : NumericUpDown
{
protected override Type StyleKeyOverride => typeof(NumericUpDown);
public TouchNumericUpDown()
: base()
{
AddHandler(PointerPressedEvent, OnPointerPressed, handledEventsToo: true);
}
private void OnPointerPressed(object? sender, PointerPressedEventArgs ea)
{
if (ea.Pointer.Type != PointerType.Touch)
return;
var navigation = (Application.Current as Application)?.Navigation;
if (navigation is null)
return;
var keyboardViewModel = new NumericKeyboardViewModel(navigation);
keyboardViewModel.Value = (double?)Value;
keyboardViewModel.Closes += (_, ea) =>
{
if (ea is null)
return;
Value = (decimal)ea.Value;
};
var keyboardView = new NumericKeyboardView()
{
DataContext = keyboardViewModel
};
navigation.NavigateTo(keyboardView);
}
}