【问题标题】:WPF KeyGestures - Binding non alphanumeric keysWPF KeyGestures - 绑定非字母数字键
【发布时间】:2010-07-29 19:54:28
【问题描述】:

应该是一个简单的,但我不知道怎么做。使用 WPF4 我想绑定 Ctrl + - 来缩小和 Ctrl + = 来放大:

    <KeyBinding Command="{Binding Content.ZoomInCommand}" Gesture="Ctrl+="/>
    <KeyBinding Command="{Binding Content.ZoomOutCommand}" Gesture="Ctrl+-"/>

但是,我遇到了错误:在 Ctrl + = 的情况下:

未找到请求的值“=”。

有什么想法吗?

【问题讨论】:

    标签: wpf keyboard-shortcuts


    【解决方案1】:

    好的 - 原来 = 键不存在(您可以通过Key-enumeration 进行检查 - Equal 或 EqualSign)...我使用国际键盘,所以你必须找到你按哪个键序列才能输入 = (对我来说它是 Shift + D0 在丹麦语键盘上) - 并使用该键序列。

    所以您的 XAML 应该是(在丹麦):

    <KeyBinding Command="{Binding Content.ZoomInCommand}" Gesture="Ctrl+Shift+D0"/>
    

    编辑:我相信在美国系统上它是 OemPlus 键 - 但您可以通过控制台在按键事件处理程序中写入 e.Key 参数来检查它)

    EDIT2:- 键在我的系统上是 OemMinus

    【讨论】:

    • 我希望您不会将您的应用程序国际化... :-)
    • 谢谢!查看keydown事件是要走的路。我正在寻找的是“Ctrl+OemPlus”和“Ctrl+OemMinus”。以后我会担心国际化!
    • +1 表示“您可以通过在按键事件处理程序中控制台写入 e.Key 参数来检查它”对我来说是 Key="Add"
    【解决方案2】:

    使用德语键盘(可能还有其他一些国家/地区)的用户提示:

    数字键“+”和“-”分别是“加”和“减”

    正常的“+”和“-”键是“OemPlus”和“OemMinus”

    所以

    <KeyBinding Gesture = "OemPlus" Command="myCommand" />
    

    如果您在主键盘上按“+”,将触发该命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-30
      • 2012-09-26
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多