Я создаю виртуальную цифровую клавиатуру для сенсорного ввода чисел. Я использую следующую функцию для вызова событий PreviewKeyDown и KeyDown для текстового поля:
private void PerformKeyInput(Key key)
{
var target = this.dialogWindow.TextInputField; // Target element
var previewKeyDownEvent = Keyboard.PreviewKeyDownEvent;
target.RaiseEvent(
new KeyEventArgs(Keyboard.PrimaryDevice, PresentationSource.FromVisual(target), 0, key)
{
RoutedEvent = previewKeyDownEvent
});
var keyDownEvent = Keyboard.KeyDownEvent;
target.RaiseEvent(
new KeyEventArgs(Keyboard.PrimaryDevice, PresentationSource.FromVisual(target), 0, key)
{
RoutedEvent = keyDownEvent
});
}
, а также изменил UpdateSourceTrigger привязки свойства Text к ProperyChanged.
<TextBox Text="{Binding TextBoxInput, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
Моя проблема прямо сейчас, что эта функция работает только для Key.Back, Key.Left и Key.Right, но не для чисел, таких как Key.Num0 или Key.D1 и так далее. Почему это не работает для отправки числовых нажатий клавиш в текстовое поле?