2012-08-27 64 views
0

我得到了一个小问题,我只是无法弄清楚:ModifierKeys.None无法正常工作。 ctrl + add触发器“ctrl + add”和“add”

我想要两种不同的键盘快捷方式工作。一个是ctrl+add,另一个是add。问题是,每当我按ctrl+addadd命令也执行。

我用下面的代码试了一下(我用KeyDown事件):

if (Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.Add) 
     something(); 

if (Keyboard.Modifiers == ModifierKeys.None && e.Key == Key.Add) 
     someOther(); 
+0

我最后做了以下内容:我设置e.Handled为真在带有控制修饰符的命令中,而在另一个命令中,我将“&&!e.Handled”添加到了if括号....是否是正确的方法? – ch40s

+0

您的示例代码可能更紧凑,但它应该按预期工作。无需设置e.Handled。 – Clemens

+0

它怎么会更紧凑呢:)?并没有设置e.Handled它总是执行一些事情()和someOther()时按Ctrl +添加,当只有东西()被想要执行... – ch40s

回答

1

你可以这样写:

if (e.Key == Key.Add) 
{ 
    if (Keyboard.Modifiers == ModifierKeys.Control) 
    { 
     something(); 
    } 
    else if (Keyboard.Modifiers == ModifierKeys.None) 
    { 
     someOther(); 
    } 
} 
+0

谢谢:)这种方式,它的工作原理 – ch40s