我们正在研究一个项目,该项目调用同时具有桌面客户端和Web客户端相同控件的视图。我们使用WPF和Silverlight来满足这两方面的需求。在具有WPF控件的桌面应用程序上,我们使用“Alt”键修饰符使用鼠标在控件内执行特定任务。我们在Silverlight中实现了相同的功能,现在我们发现Iternet Explorer使用相同的键来显示菜单栏和状态栏......所以,当我们的客户使用Alt-mouse时,基本上我们有这种奇怪的行为。所以,我的问题是,我如何处理IE中的Alt事件,所以它不会发生,但我们自己的事件开始没有首先显示菜单栏? 谢谢!
答案 0 :(得分:0)
你不能。
键首先由浏览器本身处理,然后传递给Silverlight控件。如此不能改变IE的标准行为,你无法做任何事情。
我看到两个解决方案:
Alt
键一样使用{{1}}键。用于桌面应用程序。答案 1 :(得分:0)
你想做的是以下(我不确定这是否会隐藏菜单)
<script type="text/javascript">
var slHost = null;
$(document).ready(function () {
slHost = $('#silverlightControlHost'); // Caches Silverlight Host find the div id that holds the silverlight object tag
});
$(document).keydown(function (e) {
if (e.altKey) {
focus();
if (slHost)
slHost.Content.ScriptableObjectNameThatsBelow.MethodNameInClass();
}
});
</script>
[ScriptableType] //Attribute above class
HtmlPage.RegisterScriptableObject("Name of Class or whatever", this); // Add to constructor
[ScriptableMember] // Attribute above method