Windows 8 appbar窃取焦点

时间:2012-08-29 22:45:50

标签: javascript windows-8 microsoft-metro

我目前正在使用HTML + Javascript在Windows 8上开发应用。 我在我的应用程序中使用了iFrame,并为键盘事件添加了keyeventlisteners。

然而,当我右键单击鼠标时,appbar显示出来并且它会抢走我的应用程序的焦点,所以现在所有的键盘事件都没有做任何事情。但如果再次右键单击以关闭appbar,一切都会正常工作。

有人知道专注的appbar是否来自Microsoft的设计?或者它是一种将重点放回我的iFrame的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是故意的;这样,用户可以使用他们想要显示App栏的任何方法,然后使用键盘来控制它。验证行为的一个好方法是在VS中创建默认的“网格模板”应用程序,取消注释Appbar,添加一些额外的按钮,然后测试行为。

但请注意,粘性 appbar与非粘性 appbar之间的期望存在差异。在非粘性的情况下,需要将焦点移动到应用栏,因为没有其他方法可以在不导致应用栏消失的情况下(使用键盘时)。但是,如果只使用手势(右键单击,或win-z或触摸时滑动)即可解除粘性,默认情况下不能将焦点置于其中。

可能你的解决方案是在文档级别而不是在你的IFRAME中附加你的偶数处理程序,由于两个上下文之间的消息传递的性质,这将是复杂的。