Подтвердить что ты не робот

Игнорировать Alt + F4 в приложении WPF

Как я могу игнорировать Alt + F4 в приложении WPF?

4b9b3361

Ответ 1

Вы можете impement OnClosing event на TForm и установить cea.Cancel = true;, когда cea - это CancelEventArgs из аргумента OnClosing.

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.onclosing.aspx

С#

private void Form1_Closing(Object sender, CancelEventArgs e) {
   e.Cancel = true;
}

С++

void Form1_Cancel( Object^ /*sender*/, CancelEventArgs^ e )
{
   e->Cancel = true;
}

VB.NET

Private Sub Form1_Closing(sender As Object, e As _
   System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    e.Cancel = True
End Sub 'Form1_Closing

Ответ 2

Добавьте это в UIElement/FramworkElement, где вы не хотите, чтобы Alt + F4 работал.

wnd.KeyDown += new KeyEventHandler(wnd_KeyDown);

void wnd_KeyDown(object sender, KeyEventArgs e)
{
    if ( e.Key == Key.System && e.SystemKey == Key.F4)
    {
        e.Handled = true;
    }
}

Ответ 3

Просто используйте привязку ввода, как это в файле View (Xaml):

<Window.InputBindings>
    <KeyBinding Modifiers="Alt" Key="F4" Command="{Binding Path=ToDelegateCommandThatExecuteNothing}" />
</Window.InputBindings>