Sometimes I want to prevent from closing windows using
Alt+F4. It's quite a rate case when I want the window to be closeable (so I can't bind to
Window.Closing event and stop it), but I want to disable the
Alt+F4. One of these scenarios is my clock showing window, a part of the WinRun application.
It's not a typical window. It basically acts like a live part of the desktop. It should almost be non-focusable. I'm using
Esc to hide it, but sometimes, when it is the last opened window and I want to shutdown the computer using
Alt+F4, invoked on the desktop, and instead of having focus on the dekstop I have focus on the clock window. It closes the window... Damn!
Here is a code snippet to actualy prevent
Alt+F4 on WPF window. The method is bound to a
private void OnPreviewKeyDown(object sender, KeyEventArgs e)
if (e.Key == Key.System && e.SystemKey == Key.F4)
e.Handled = true;
The "trick" is to test the pressed key for
Key.System and then test
Hope it helps me some day in the future.