Silverlight SketchFlow中未激发KeyDown

Silverlight SketchFlow中未激发KeyDown,silverlight,silverlight-4.0,keydown,sketchflow,Silverlight,Silverlight 4.0,Keydown,Sketchflow,我试图在Silverlight SketchFlow项目中向视图的LayoutRoot添加一个KeyDown事件处理程序,但它似乎没有启动 如果我将事件类型更改为MouseLeftButton,则会触发该事件,但我想使用键盘快捷键演示这一点 有人知道如何同时完成这两个任务吗?嗯,由于一些不速之客不知道的原因,当在XAML中指定时,KeyDown事件没有触发。我发现挂接到code behind中的应用程序.Current.RootVisual.KeyDown就可以了。好吧,由于一些不速之客看不到的

我试图在Silverlight SketchFlow项目中向视图的LayoutRoot添加一个KeyDown事件处理程序,但它似乎没有启动

如果我将事件类型更改为MouseLeftButton,则会触发该事件,但我想使用键盘快捷键演示这一点


有人知道如何同时完成这两个任务吗?

嗯,由于一些不速之客不知道的原因,当在XAML中指定时,KeyDown事件没有触发。我发现挂接到code behind中的
应用程序.Current.RootVisual.KeyDown
就可以了。

好吧,由于一些不速之客看不到的原因,当在XAML中指定时,KeyDown事件没有触发。我发现在代码隐藏中挂接
应用程序.Current.RootVisual.KeyDown就可以了。

原因是,当托管在SketchFlow播放器中时,LayoutRoot实际上不是“布局根”。键盘焦点最初集中在Sketchflow播放器上

您可以尝试在页面加载的事件中添加Focus()调用,但也要确保已先将Jscript添加到实际的浏览器Silverlight对象的初始焦点。e、 g

<script type="text/javascript">
        function appLoad(sender, args) {
            var xamlObject = document.getElementById('SilverlightObject');
            if (xamlObject != null)
                xamlObject.focus();
        }

函数appLoad(发送方,参数){
var xamlObject=document.getElementById('SilverlightObject');
if(xamlObject!=null)
xamlObject.focus();
}


原因是,当托管在SketchFlow播放器中时,LayoutRoot实际上不是布局根目录。键盘焦点最初集中在Sketchflow播放器上

您可以尝试在页面加载的事件中添加Focus()调用,但也要确保已先将Jscript添加到实际的浏览器Silverlight对象的初始焦点。e、 g

<script type="text/javascript">
        function appLoad(sender, args) {
            var xamlObject = document.getElementById('SilverlightObject');
            if (xamlObject != null)
                xamlObject.focus();
        }

函数appLoad(发送方,参数){
var xamlObject=document.getElementById('SilverlightObject');
if(xamlObject!=null)
xamlObject.focus();
}