将WPF文本框设为剪切,复制和粘贴限制

Sau*_*ron 26 c# wpf wpf-controls

如何将WPF文本框剪切,复制和粘贴限制?

Pra*_*dda 45

剪切,复制和粘贴是任何应用程序使用的常用命令,

<TextBox CommandManager.PreviewExecuted="textBox_PreviewExecuted"
         ContextMenu="{x:Null}" />
Run Code Online (Sandbox Code Playgroud)

在上面的文本框代码中,我们可以在CommandManager类的PrviewExecuted事件中限制这些命​​令

并在代码后面添加下面的代码,你的工作就完成了

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

  • 我想我还需要将contextmenu设置为null. (4认同)

小智 16

commandName方法不适用于具有日语操作系统的系统,因为commandName =="粘贴"比较将失败.我尝试了以下方法,它对我有用.此外,我不需要手动禁用上下文菜单.

在XaML文件中:

<PasswordBox.CommandBindings>
    <CommandBinding Command="ApplicationCommands.Paste"
    CanExecute="CommandBinding_CanExecutePaste"></CommandBinding>
</PasswordBox.CommandBindings>
Run Code Online (Sandbox Code Playgroud)

在后面的代码中:

private void CommandBinding_CanExecutePaste(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = false;
    e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)