我想捕獲在我的Silverlight 2應用程序內發生的任何擊鍵。沒有任何輸入字段,我正在寫一個遊戲,並且需要知道哪個箭頭鍵被按下。我最好的猜測是如何通過事件處理程序捕獲這些數據是不成功的。任何建議?如何在Silverlight應用程序中捕獲擊鍵?
1
A
回答
1
很高興再次見到你(幾乎)。
我假設你已經嘗試在根UserControl元素上連線KeyDown。這裏有一些提示:
插件需要集中在看到關鍵事件之前。你必須強制用戶點擊插件才能開始。
確保您沒有其他元素(如ScrollViewer)正在吃箭頭鍵事件。如果你有一個ScrollViewer,你只會看到KeyUp。
沒有切換到全屏模式。
一定是一件簡單的事,你就是這樣想的。希望有所幫助。
0
在您的根網格上處理KeyDown和/或KeyUp事件。
0
Silverlight 2支持KeyUp和KeyDown事件(僅我相信 - 不是KeyPress)。
在這些事件中,您得到一個KeyEventArgs對象作爲參數。您可以從中獲取KeyCode或KeyData。
0
在回顧關於此問題的不同論壇的幾個不同線索時,似乎最好在頁面(root)元素上處理您的keyevents,解析所需效果的關鍵字,並將您的命令重定向到特定控件。
頁
this.KeyDown += (s, e) =>
{
MyControl control = (MyControl)Layoutroot.FindName("controlname");
if(control != null)
{
control.MyPublicFunction(e.Key);
}
};
MyControl
public MyPublicFunciton(Key pressedKey)
{
if(pressedKey == Key.Enter)
{
//Do something
}
}
相關問題
- 1. 如何從silverlight應用程序捕獲發佈數據?
- 2. 是否有可能在Silverlight應用程序中捕獲F5
- 3. 如何攔截WinForms應用程序中的捕獲TAB鍵?
- 4. 如何在應用程序中禁用鍵F5 Silverlight
- 5. 捕獲鍵擊
- 6. 捕獲擊鍵
- 7. 在Silverlight中捕獲關鍵事件
- 8. 給予Flex應用程序焦點在瀏覽器中捕獲擊鍵
- 9. 右鍵單擊Silverlight 4應用程序中的列表框
- 10. 在C++ windows應用程序中捕獲按下的按鍵
- 11. 在WPF中的應用程序級別捕獲關鍵事件
- 12. 在Windows窗體應用程序中捕獲組合鍵事件
- 13. 在整個應用程序中捕獲按鍵
- 14. 在Web應用程序中捕獲HTML
- 15. 使用Form1_KeyDown捕獲鍵擊(...)
- 16. Silverlight:如何部署Silverlight應用程序?
- 17. 如何在Silverlight應用程序中獲取文件?
- 18. 如何在Silverlight應用程序中獲取客戶端大小?
- 19. 如何在Silverlight 4應用程序中獲取Outlook 2003數據
- 20. 如何在Silverlight應用程序中獲取OracleDataClient
- 21. 如何在Silverlight中獲取應用程序的ProductName
- 22. 如何在c#中的Windows應用程序中捕獲異常?
- 23. 如何在Silverlight應用程序中使用非Silverlight DLL?
- 24. 如何在Java Servlet Web應用程序中捕獲未捕獲的異常
- 25. 如何在黑莓應用程序中捕獲未被捕獲的異常?
- 26. 如何在Silverlight中捕獲AccessViolationException?
- 27. 如何捕獲右鍵單擊事件?
- 28. 如何使用Python守護進程捕獲鍵擊?
- 29. Silverlight應用程序需要鼠標點擊來激活鍵盤
- 30. 使用silverlight插件捕獲圖像在asp.net中mvc應用程序
我想我已經逃避了這些缺陷。這裏是我的代碼: 命名空間ClickTheButton { \t公共部分類Level10:用戶控件 \t { \t \t公共Level10() \t \t { \t \t \t //需要初始化變量 \t \t \t的InitializeComponent(); \t \t \t Loaded + = new RoutedEventHandler(Level10_Loaded); \t \t} \t \t空隙Level10_Loaded(對象發件人,RoutedEventArgs E) \t \t { \t \t \t LayoutRoot。KeyDown + = new KeyEventHandler(LayoutRoot_KeyDown); \t \t} \t \t空隙LayoutRoot_KeyDown(對象發件人,KeyEventArgs E) \t \t { \t \t \t如果(e.Key == Key.Right) \t \t \t { \t \t \t \t // DO THE這個鍵應該這樣做。 \t \t \t} \t \t} \t}} 哇 – 2009-06-05 17:22:04