我正在尝试捕获Silverlight 2应用程序中发生的任何击键。没有任何输入字段,我正在编写游戏,并且需要知道正在按下哪个箭头键。我最好的猜测如何通过事件处理程序捕获这些是不成功的。有什么建议吗?
答案 0 :(得分:1)
很高兴再次见到你(虚拟地)。
我假设你已经尝试在根UserControl元素上连接KeyDown。以下是一些提示:
插件在看到关键事件之前需要关注。您必须强制用户单击插件才能启动。
确保您没有吃箭头键事件的其他元素(如ScrollViewer)。如果您有ScrollViewer,您将只看到KeyUp。
无法切换到全屏模式。
必须是那种简单的东西,你就是这样。希望有所帮助。
答案 1 :(得分:0)
处理根网格上的KeyDown和/或KeyUp事件。
答案 2 :(得分:0)
Silverlight 2支持KeyUp和KeyDown事件(仅我相信 - 不是KeyPress)。
在这些事件中,您将获得KeyEventArgs对象作为参数。您可以从中获取KeyCode或KeyData。
答案 3 :(得分:0)
在回顾来自不同论坛的一些不同主题时,最好处理页面(根)元素上的键事件,解析所需效果的键,并将命令重定向到特定控件。
页
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
}
}