winforms 为什么WPF窗口无法捕获Windows 10上的Alt+F4键?

rryofs0p  于 2023-03-24  发布在  Windows
关注(0)|答案(1)|浏览(145)

我尝试通过在WPF窗口上添加KeyDown事件处理程序来捕获Alt+F4键,但它不起作用。
然而,它在WinForms窗体上工作。为什么?我如何在WPF窗口上捕获它?

kd3sttzy

kd3sttzy1#

用“ALT+F4”关闭窗口似乎被钩住了,即使Window.PrevieweyDown也没有被调用。
此处可勾选“窗口关闭”:

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
    if (Keyboard.Modifiers.HasFlag(ModifierKeys.Alt) && Keyboard.IsKeyDown(Key.F4))
    {
       //e.Cancel = true;
    }
}

或者你可以根据你的需要连接一个命令(例如命令在窗口中,即窗口具有属性ICommand SomeCommand

<Window.InputBindings>
    <KeyBinding Key="F4" Modifiers="Alt" Command="{Binding SomeCommand, RelativeSource={RelativeSource AncestorType=Window}}"></KeyBinding>
</Window.InputBindings>

相关问题