Silverligh 键盘事件(组合键)

Silverlight 提供了一系列键盘事件,使您能够响应击键操作。键盘事件与鼠标事件具有许多相似性,并且鼠标、焦点和键盘事件有时统称为 Silverlight 输入事件。
主要有KeyDown和KeyUp事件。

要注意以下两个方面问题:
1.      键盘事件和浏览器

不同浏览器可能以不同方式处理键盘事件。在您创建使用键盘输入的某一应用程序时,请确保在您的目标浏览器中测试该应用程序。
浏览器确定它将解释为命令的击键和要传递给所承载内容的击键。这表明将无法从 KeyDown 和 KeyUp 事件处理程序函数中检索某些击键。浏览器解释为命令的大多数击键是快捷方式击键或快捷键击键,而不作为键事件传递到 Silverlight。例如,Ctrl+D 是用于将收藏的 URL 添加到 Firefox 和 Internet Explorer 浏览器的快捷方式击键组合,而 Ctrl 和 D 都不会被报告为键事件。
2.      键盘事件和全屏模式
当 Silverlight 插件在全屏模式下显示时,会阻止将键盘事件传递到应用程序中的键盘事件处理程序。只有所执行的键盘输入才是将 Silverlight 插件返回到嵌入模式的一组击键。键盘输入在全屏模式下的这一限制是一项安全功能。其目的是最大限度地降低用户向以直观方式模拟其他应用程序的应用程序中输入意外信息的可能性。

//单键、组合键
void btnEdit_KeyDown(object sender, KeyEventArgs e)
{
    //处理业务
}

void btnEdit_KeyUp(object sender, KeyEventArgs e)
{
    //
    if (e.Key==Key.E) 
    { 
        if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
        {
            //执行Ctrl+E事件后的业务
        }
    }
}

/*
在chm文档中,将此解释为如下信息:
修改键
某些击键被视为修改键。这些键通常与其他键一起按下。所有平台上均使用的修改键包括 SHIFT 和 CTRL 键。某些修改键是平台特定的。
通常,您解释修改键以便检查在也收到另一个键事件时某个修改键是否已按下,因为此另一个键加上修改键表示一个对应用程序有用的键组合。在此情况下,修改键信息不作为事件数据的一部分进行传递。而您应使用事件处理程序中的 Keyboard 实用工具类,将修改键作为为可能修改的键值处理事件的过程的一部分来进行检查。
若要确定应用哪些修改键,请检查 Keyboard 静态类的 Modifiers 值。此属性返回 ModifierKeys 标志枚举值。该值是一个标志,因为可能按下了多个修改键。
修改键始终生成其自己的键事件。您可以选择处理这些事件,还可以选择跟踪您自己的修改键状态,但使用 Modifiers 值通常更方便。
*/

 

posted on 2012-10-07 11:44  俄罗斯水手  阅读(454)  评论(2编辑  收藏  举报

导航