【问题标题】:ModifierKeys.None not working. ctrl+add triggers "ctrl+add" and "add"ModifierKeys.None 不起作用。 ctrl+add 触发“ctrl+add”和“add”
【发布时间】:2012-08-21 21:55:24
【问题描述】:

我遇到了一个小问题,我就是想不通:

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

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

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

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

【问题讨论】:

  • 我最终做了以下事情:我在带有控制修饰符的命令中将 e.Handled 设置为 true,在另一个命令中,我在 if 括号中添加了“&& !e.Handled”。 ..这是正确的做法吗?
  • 您的示例代码可能更紧凑,但它应该可以按预期工作。无需设置 e.Handled。
  • 那么它怎么能更紧凑:)?在不设置 e.Handled 的情况下,它总是在按 ctrl+add 时执行 something() 和 someOther(),当只想执行 something() 时...

标签: .net wpf keyboard keydown


【解决方案1】:

你可以这样写:

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

【讨论】:

    猜你喜欢
    • 2016-09-02
    • 2012-05-03
    • 1970-01-01
    • 2012-04-19
    • 2012-04-13
    • 2017-11-19
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多