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>
Здесь мы просто отключаем выполнение команды копирования. Control-C не будет работать, равно как и контекстное меню или главное меню. Фактически, любой элемент управления, который выполняет команду копирования, будет отключен, если фокус находится в TextBox
.