Silverlight应用程序需要单击鼠标才能激活键盘

时间:2012-04-04 16:47:30

标签: silverlight

我正在使用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)
    {
    ....
    }

1 个答案:

答案 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();
}