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
+42
View File
@@ -0,0 +1,42 @@
using Avalonia.Controls;
using Avalonia.Input;
using GSS2.ViewModels;
using GSS2.Views;
namespace GSS2.Controls;
public class TouchTextBox : TextBox
{
protected override Type StyleKeyOverride => typeof(TextBox);
public TouchTextBox()
: 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 TextKeyboardViewModel(navigation);
keyboardViewModel.Value = Text;
keyboardViewModel.IsMultiline = AcceptsReturn;
keyboardViewModel.Closes += (_, ea) =>
{
if (ea is null)
return;
Text = ea;
};
var keyboardView = new TextKeyboardView()
{
DataContext = keyboardViewModel
};
navigation.NavigateTo(keyboardView);
}
}