2016-09-29 10 views
1

В моем приложении MonoGame UWP все нажатия клавиш задерживаются вводом мыши. Он имеет два эффекта:Задержка ввода на клавиатуре, вызванная мышью

1) При удерживании любой клавиши вход продолжается после того, как я физически освобожу. Это заканчивается, когда я быстро перемещаю мышь.

2) Когда я нажимаю клавишу, быстро передвигая мышь, вход не принимается, пока я не перестану перемещать мышь.

Это событие, которое срабатывает поздно.

window.KeyDown += CoreWindow_KeyDown; 
+1

Это сложно без кода, но я нашел это: Приложения не получают это событие, когда включен редактор методов ввода (IME). https://msdn.microsoft.com/en-in/windows.ui.core.corewindow.keydown или посмотрите на это: http://stackoverflow.com/questions/28421867/how-do-i-handle-keydown- событие-в-WinRT-приложение-XAML-и-с-который-имеет-а-WebView –

ответ

1

Это вызвано входных событий получения накопившихся вследствие :: UI :: Основной :: CoreProcessEventsOption флаг Windows, передается ProcessEvents. Быстрый вход мыши заполняет очередь событий быстрее, чем они обрабатываются, и когда очередь заполняется, новые события будут отброшены.

coreWindow->Dispatcher->ProcessEvents(Windows::UI::Core::CoreProcessEventsOption::ProcessOneIfPresent); 

Передайте более подходящий флаг для ввода в реальном времени, например ProcessAllIfPresent.

 Смежные вопросы

  • Нет связанных вопросов^_^