我有一个Silverlight应用程序,我可以在其中捕获某些按键,例如 Tab 或 Ctrl 来执行某些操作。但是,我希望能够处理同时按下的多个键,例如 Ctrl + R 或类似的东西。有没有办法在Silverlight中做到这一点,如果有,怎么做?
答案 0 :(得分:15)
查看ModifierKeys Enumeration以检查多个按键组合。有关代码示例和更多信息,请参阅Silverlight Keyboard Support。
void Canvas_KeyUp(object sender, KeyEventArgs e)
{
//check for the specific 'v' key, then check modifiers
if (e.Key==Key.V) {
if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) {
//specific Ctrl+V action here
}
} // else ignore the keystroke
}
答案 1 :(得分:1)
处理像Cntrl + X这样的关键组合是非常有问题的,因为你在浏览器中运行Silverlight可能会使用大多数Cntrl组合本身。然后考虑到你可能需要支持IE,Firefox等多种浏览器,我建议你放弃。
因此我将Silverlight键组合限制为仅移位。