首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SketchFlow中未激发KeyDown

在SketchFlow中未激发KeyDown
EN

Stack Overflow用户
提问于 2010-10-08 04:40:11
回答 2查看 365关注 0票数 1

我试图将KeyDown事件处理程序添加到Silverlight SketchFlow项目中的视图的LayoutRoot中,但它似乎无法触发。

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

有没有人知道如何做到这两点?

EN

回答 2

Stack Overflow用户

发布于 2010-10-08 04:53:46

好吧,出于一些对未被邀请的人来说不明显的原因,在XAML中指定时,KeyDown事件不会触发。我发现在代码隐藏中挂钩到Application.Current.RootVisual.KeyDown是可行的。

票数 1
EN

Stack Overflow用户

发布于 2010-10-08 16:40:46

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

您可以尝试在页面加载事件中添加Focus()调用,但也要确保先将Jscript添加到实际的浏览器Silverlight对象中。例如:

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

代码语言:javascript
复制
<object id='SilverlightObject' data= ...
            [snip]
            <param name="onError" value="onSilverlightError" />
            <param name="onLoad" value="appLoad" />

如果您在托管Silverlight应用程序的HTML/ASPX页面中没有该代码,则所有的按键操作都会转到浏览器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3885705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档