我想禁用WPF TextBox中的所有默认快捷方式。快捷键如 Ctrl + A , Ctrl + V , Ctrl + C 等可以这样做吗?在我看来,这些快捷方式是在KeyDown
事件
答案 0 :(得分:3)
您可以拦截PreviewKeyDown
事件中的击键。将e.Handled
成员设置为true
,这将阻止实际处理密钥。
答案 1 :(得分:3)
public Window1()
{
InitializeComponent();
CommandManager.AddPreviewCanExecuteHandler(_textBox, _canExecute);
}
private void _canExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = false;
e.Handled = true;
}
以上内容将阻止TextBox说它可以处理任何命令。您可以通过检查EventArgs
来有选择地选择要禁用的命令。或者您可以在XAML中执行此操作:
<TextBox x:Name="_textBox">
<TextBox.CommandBindings>
<CommandBinding Command="ApplicationCommands.Copy" CanExecute="_canExecute"/>
</TextBox.CommandBindings>
</TextBox>
这里我们只是禁止执行Copy命令。 Control-C不起作用,上下文菜单或主菜单也不起作用。实际上,如果焦点位于TextBox
。