背景:我有一個應用程序,我希望能夠捕獲鍵盤事件。在主屏幕上,用戶點擊一個開始按鈕。在遊戲過程中,「開始」按鈕消失,顯示一個「重置」按鈕(兩個控件上的可見性更改)。這些是唯一的兩個標準控件,因爲所有其他都是不可聚焦的用戶控件。在Silverlight中捕獲關鍵事件
問題:當用戶點擊開始(從而給它聚焦),然後它隱藏和重置出現,重置按鈕自動似乎獲得焦點。這不是很糟糕,因爲重要的新聞事件仍然存在,但重點導致了一個大問題。如果用戶按下空格,則該按鈕將其解釋爲Click事件。
如果我將KeyUp和KeyDown的句柄添加到按鈕本身並將事件設置爲Handled,那麼如果我按住空格並放開,則會吞下該事件,但如果我只是輕點它,則不會。
問題:如何防止空間激活按鈕,同時仍然能夠響應我的應用程序中的空間?
謝謝!這就是我所做的。唯一的副作用是,我似乎無法使用空格鍵,因爲Windows使用它來創建Click事件。爲了解決這個問題,我只連接了點擊事件處理程序。爲了簡單起見,我創建了一個標準按鈕,它具有零大小的邊框和按Tab鍵順序排列的按鈕後的1x1大小。由於空格鍵/點擊事件的怪異性,您無法按住空格鍵來接收多個事件(無論如何),但在我的應用程序中並不算太糟糕。 非常感謝您的回覆! – 2009-08-24 20:22:46