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

Сделайте текстовое поле WPF отрезанным, скопируйте и вставьте

Как я могу удалить текстовое поле WPF, скопировать и вставить?

4b9b3361

Ответ 1

Вырезать, копировать и вставить общие команды, используемые в любом приложении,

<TextBox CommandManager.PreviewExecuted="textBox_PreviewExecuted"
         ContextMenu="{x:Null}" />

в приведенном выше текстовом поле мы можем ограничить эти команды в событии PrviewExecuted класса CommandManager

и в коде ниже добавить код ниже и ваша работа выполнена

private void textBox_PreviewExecuted(object sender, ExecutedRoutedEventArgs e)
{
     if (e.Command == ApplicationCommands.Copy ||
         e.Command == ApplicationCommands.Cut  || 
         e.Command == ApplicationCommands.Paste)
     {
          e.Handled = true;
     }
}

Ответ 2

Метод commandName не будет работать в системе с японской ОС, так как командаName == Сравнение "Вставить" завершится ошибкой. Я попробовал следующий подход, и это сработало для меня. Также мне не нужно вручную отключать контекстное меню.

В файле XaML:

<PasswordBox.CommandBindings>
    <CommandBinding Command="ApplicationCommands.Paste"
    CanExecute="CommandBinding_CanExecutePaste"></CommandBinding>
</PasswordBox.CommandBindings>

В коде позади:

private void CommandBinding_CanExecutePaste(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = false;
    e.Handled = true;
}