Как подавить Сокращение, Копию и Операции вставки в TextBox в WPF?

Я хочу подавить Сокращение, Копию и Операции вставки в Текстовом поле.

Я не хочу, чтобы пользователь сделал любую из этих операций через клавиатуру или из контекстного меню по умолчанию в текстовом поле.

Сообщите мне, как я могу ограничить эти операции?

6
задан Ashish Ashu 16 June 2010 в 06:36
поделиться

1 ответ

Вы можете сделать это довольно просто, используя маршрутизируемое событие CommandManager.PreviewCanExecute. В XAML вы должны поместить следующее в элемент TextBox. Это будет применяться к CTL+V и т.д., а также к контекстному меню или любым кнопкам, которые вы сопоставили с этими командами, так что это очень эффективно.

<TextBox CommandManager.PreviewCanExecute="HandleCanExecute" />

Затем в code-behind добавьте метод HandleCanExecute, который отключает эти команды.

private void HandleCanExecute(object sender, CanExecuteRoutedEventArgs e) {

    if ( e.Command == ApplicationCommands.Cut ||
         e.Command == ApplicationCommands.Copy ||
         e.Command == ApplicationCommands.Paste ) {

        e.CanExecute = false;
        e.Handled = true;

    }

}
10
ответ дан 10 December 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: