我正在使用VS2010,C#开发Silverlight在线游戏,我使用键盘获取用户输入,但用户必须先点击silverligh canvas才能激活键盘(我的场景中只有一个画布,而不是全屏,没有别的),我怎么能最初把焦点放在键盘上,以便每当游戏开始时用户可以用键盘玩(不需要点击画布),这就是我设置键盘的方式:
public MainPage()
{
InitializeComponent();
Loaded += new RoutedEventHandler(Page_Loaded);
}
void Page_Loaded(object sender, RoutedEventArgs e)
{
this.KeyDown += new KeyEventHandler(Page_KeyDown);
}
void Page_KeyDown(object sender, KeyEventArgs e)
{
....
}
答案 0 :(得分:1)
尝试将焦点首先设置为Silverlight插件,如下所述:http://blog.falafel.com/Blogs/josh-eastburn/2011/03/10/Setting_Focus_on_the_Silverlight_Plugin_Object
然后将后续焦点应用于您希望接受键盘输入的控件。
另一个对我有用的提示是通过在文档就绪函数上运行初始脚本,在DOM树中实例化之后将DOM焦点设置为插件:
$('#silverlightPlugin').on(function(){
$(this).focus();
}