2016-09-29 142 views
1

在我的UWP MonoGame應用程序中,所有擊鍵都由鼠標輸入延遲。它有兩個作用:由鼠標引起的鍵盤輸入延遲

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-APP-XAML - 和 - C-其中-具有-A-網頁視圖 –

回答

1

這是由於傳遞給ProcessEvents的Windows :: UI :: Core :: CoreProcessEventsOption標誌導致輸入事件積壓。快速鼠標輸入將比事件隊列更快地填充事件隊列,當隊列變滿時,新事件將被丟棄。

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

爲實時輸入傳遞更適當的標誌,例如ProcessAllIfPresent。