C# 禁用WPF中的密钥
我有一个WPF应用程序。我需要禁用Alt+F4和Ctrl+Esc组合键。在WPF中有这样做的方法吗?如果是,怎么做C# 禁用WPF中的密钥,c#,wpf,C#,Wpf,我有一个WPF应用程序。我需要禁用Alt+F4和Ctrl+Esc组合键。在WPF中有这样做的方法吗?如果是,怎么做 谢谢 如果您的所有操作都放在窗口内,请注册到窗口的-事件,并始终将事件的Handled属性设置为true(如果按了所需的组合键之一)。不要使用KeyDown事件。它经常开火太晚。使用PreviewKeyDown。 如果有多个窗口,可以考虑创建一个附加属性并在处理程序中注册 您可以通过Keyboard.Modifiers-property检查修改器键 您可以使用windows API
谢谢 如果您的所有操作都放在窗口内,请注册到窗口的-事件,并始终将事件的Handled属性设置为true(如果按了所需的组合键之一)。不要使用KeyDown事件。它经常开火太晚。使用PreviewKeyDown。
如果有多个窗口,可以考虑创建一个附加属性并在处理程序中注册
您可以通过Keyboard.Modifiers-property检查修改器键 您可以使用windows API:
SetWindowsHookEx
请参见此处的示例:
注意该示例适用于Windows窗体,但也适用于WPF,只需稍作修改。尝试覆盖:
您能否更新您的答案以支持WPF。。。?我需要WPF解决方案。:)@你看到这个了吗?我去看看。非常感谢!:)
protected override void OnKeyDown(KeyEventArgs e)
{
if (Keyboard.Modifiers == ModifierKeys.Alt && e.SystemKey == Key.F4 ||
Keyboard.Modifiers == ModifierKeys.Control && e.SystemKey == Key.Escape)
{
e.Handled = true;
}
else
{
base.OnKeyDown(e);
}
}