有没有办法KeyBinding
在 XAML 中使用和执行 OnKeyUp 上的命令?
如果我想绑定左 ALT 键来执行我自己的菜单访问命令,因为 KeyBinding 在 OnKeyDown 上执行命令,我会得到一些不需要的行为。例如,当使用Alt+Tab
该命令跳出应用程序时会触发,并且如果按住该键,则会重新触发该命令,直到释放该键。
我知道 ALT 是一个修饰键,有点特殊,但是通过等待 OnKeyUp 可以避免这些问题。
我通常使用此附加命令行为将命令连接到事件
在您只想在按下特定组合键时执行命令的特殊情况下,我建议同时连接KeyUp
事件和KeyUp
附加命令。
在常规KeyUp
事件中,检查您想要的组合键是否被按下,如果没有,则将事件标记为Handled
它也不会被命令处理
例如,这只会在A按键被按下时执行绑定的命令
<TextBox acb:CommandBehavior.Command="{Binding TestCommand}"
acb:CommandBehavior.Event="KeyUp"
KeyUp="TextBox_KeyUp"/>
和
private void TextBox_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key != Key.A)
e.Handled = true;
}