сколько времени потребовалось пользователю, чтобы вставить текст в мой контроль - PullRequest
0 голосов
/ 29 марта 2019

Моя первоначальная проблема заключается в возможности отличить обычную клавиатуру от сканера штрих-кода: таймер, проверяющий, слишком ли это быстро, это должен быть сканер штрих-кода, Я пытался с помощью триггера событий, но я не мог найти способ, поэтому я в конечном итоге с некоторым кодом позади, я также должен убедиться, что фокус на правильный элемент управления

код конца

 private void UiTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
        {
            var window = Window.GetWindow(this);
            window.KeyDown += HandleKeyPress;
        }
        private void Windows_Loaded(object sender, RoutedEventArgs e)
        {

            var window = Window.GetWindow(this);
            NewPrelevementLigne.Focus();
            window.KeyDown += HandleKeyPress;


        }



        private void HandleKeyPress(object sender, KeyEventArgs e)
        {
            var cle = e.Key;
            var vm = (NewPrelevementVm)this.DataContext;
            vm.LigneAddCommand.Execute(null);
        }

мой xaml

 <wpf:UiTextBlock    Grid.Row="0" Name="NewPrelevementLigne"   Grid.Column="0"  Text="{Binding Texts.NewPrelevementLigne,UpdateSourceTrigger=PropertyChanged}" FontWeight="SemiBold">

                </wpf:UiTextBlock>

моя команда

    private RelayCommand _ligneAddCommand;

    public RelayCommand LigneAddCommand => _ligneAddCommand = _ligneAddCommand ?? new RelayCommand(LigneAddKeyDownEventHandle, LignaAddCanBeExecuted);

    protected virtual bool LignaAddCanBeExecuted() => true;

    protected virtual void LigneAddKeyDownEventHandle()
    {
        if (timer != null)
            timer.Stop();

        timer = new System.Windows.Threading.DispatcherTimer();
        timer.Tick += (s, args) =>
        {
            var t = s.ToString();
            timer.Stop();
        };
        timer.Interval = TimeSpan.FromMilliseconds(50);
        timer.Start();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...