Событие имитации нажатия клавиши WPF не работает должным образом - PullRequest
0 голосов
/ 16 января 2020

Я создаю виртуальную цифровую клавиатуру для сенсорного ввода чисел. Я использую следующую функцию для вызова событий 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 и так далее. Почему это не работает для отправки числовых нажатий клавиш в текстовое поле?

...