【问题标题】:WPF Input Key BindingWPF 输入键绑定
【发布时间】:2018-01-10 15:51:07
【问题描述】:
<Window.InputBindings>
    <KeyBinding Key="0" Command="{Binding ZeroCommand}"/>
    <KeyBinding Key="1" Command="{Binding OneCommand}"/>
    <KeyBinding Key="2" Command="{Binding TwoCommand}"/>
    <KeyBinding Key="3" Command="{Binding ThreeCommand}"/>
    <KeyBinding Key="4" Command="{Binding FourCommand}"/>
    <KeyBinding Key="5" Command="{Binding FiveCommand}"/>
    <KeyBinding Key="6" Command="{Binding SixCommand}"/>
    <KeyBinding Key="7" Command="{Binding SevenCommand}"/>
    <KeyBinding Key="8" Command="{Binding EightCommand}"/>
    <KeyBinding Key="9" Command="{Binding NienCommand}"/>
    <KeyBinding Key="OemPlus" Command="{Binding PlusCommand}"/>
    <KeyBinding Key="OemMinus" Command="{Binding MinusCommand}"/>
    <KeyBinding Key="OemBackslash" Command="{Binding DevideCommand}"/>
    <KeyBinding Key="Multiply" Command="{Binding MultiplyCommand}"/>
    <KeyBinding Key="Return" Command="{Binding EqualsCommand}"/>
</Window.InputBindings>

当我遇到这个问题时,我正在创建一个基本的计算器应用程序。我收到编译错误“0”不能用作“键”的值。数字不是有效的枚举值。事实上 OemMinus 是唯一被绑定的命令。

我认为可以通过创建一个带有单例的 InputBindingConfiguration 类来解决这个问题,在那里定义键并绑定到这些键,但我想知道是否有一种纯粹在 Xaml 中执行此操作的方法?

【问题讨论】:

  • 您需要为Key 属性提供一个有效值。有效值是System.Windows.Input.Key 枚举类型的枚举值的名称。所以你有例如"0",您需要使用 "D0"。请参阅文档以了解其余有效的值名称。
  • 我个人觉得这个问题非常相关 - 当我提供键值时,我很惊讶 WPF 自动完成提供纯数字选项,我认为这是通过值转换器完成的。显然它只接受数字键的 D- 值。

标签: c# wpf xaml


【解决方案1】:

检查下面的正确键绑定 链接:WPFKeyBindings

基本键

密钥 - 代码密钥

A - Z 基本字母键。

D0 - D9 键盘主要部分的数字键。 Space 空格键。

F1 - F24 功能键。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-11
  • 2021-03-01
  • 2014-09-18
  • 2021-07-29
  • 2011-01-17
相关资源
最近更新 更多