forked from amkovkov/GranuSightSoftware2
42 lines
1.1 KiB
C#
42 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|