XAML 密钥绑定 1,2,3

And*_*zej 1 c# keyboard wpf xaml binding

我决定通过按页面上的键来复制按钮,但收到如下错误:

“1”不能用作“Key”的值。数字不是有效的枚举值。

 <Page.InputBindings>
    <KeyBinding Command="{Binding Btn_Click}" 
               CommandParameter="{Binding ElementName=btn1,Path=Content}"
                Key="1"/>
    <KeyBinding Command="{Binding Btn_Click}" 
               CommandParameter="{Binding ElementName=btn2,Path=Content}"
                Key="2"/>
    <KeyBinding Command="{Binding Btn_Click}" 
               CommandParameter="{Binding ElementName=btn3,Path=Content}"
                Key="3"/>
    <KeyBinding Command="{Binding Btn_Click}" 
               CommandParameter="{Binding ElementName=btn4,Path=Content}"
                Key="4"/>
</Page.InputBindings>
Run Code Online (Sandbox Code Playgroud)

我可以欺骗系统吗?

sTr*_*nat 5

您可以使用D1,这是1键的枚举值。有关所有可能值的列表,请参阅键枚举页面。

<KeyBinding Command="{Binding SomeCommand}" Key="D1"/>
Run Code Online (Sandbox Code Playgroud)

或只是绑定:

<KeyBinding Command="{Binding SomeCommand}" Key="{Binding MyKey}"/>
Run Code Online (Sandbox Code Playgroud)

虚拟机:

public Key MyKey
{
    get => Key.D1;
}
Run Code Online (Sandbox Code Playgroud)

这是因为你不能像枚举器那样做:

enum MyEnum
{
    1,
    2,
    3
};
Run Code Online (Sandbox Code Playgroud)