我尝试通过在WPF窗口上添加KeyDown事件处理程序来捕获Alt+F4键,但它不起作用。然而,它在WinForms窗体上工作。为什么?我如何在WPF窗口上捕获它?
kd3sttzy1#
用“ALT+F4”关闭窗口似乎被钩住了,即使Window.PrevieweyDown也没有被调用。此处可勾选“窗口关闭”:
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)
ICommand SomeCommand
<Window.InputBindings> <KeyBinding Key="F4" Modifiers="Alt" Command="{Binding SomeCommand, RelativeSource={RelativeSource AncestorType=Window}}"></KeyBinding> </Window.InputBindings>
1条答案
按热度按时间kd3sttzy1#
用“ALT+F4”关闭窗口似乎被钩住了,即使
Window.PrevieweyDown
也没有被调用。此处可勾选“窗口关闭”:
或者你可以根据你的需要连接一个命令(例如命令在窗口中,即窗口具有属性
ICommand SomeCommand
)