如何在WPF中禁止TextBox中的剪切,复制和粘贴操作?

Ash*_*shu 6 wpf textbox wpf-controls

我想在文本框中抑制剪切,复制和粘贴操作.

我不希望用户通过键盘或文本框中的默认上下文菜单执行任何这些操作.

请让我知道如何限制这些操作?

Jos*_*osh 10

您可以使用CommandManager.PreviewCanExecute路由事件轻松地完成此操作.在您的XAML中,您将把以下内容放在TextBox元素上.这将适用于CTL + V等,以及上下文菜单或您可能已映射到这些命令的任何按钮,因此它非常有效.

<TextBox CommandManager.PreviewCanExecute="HandleCanExecute" />
Run Code Online (Sandbox Code Playgroud)

然后在您的代码隐藏中,添加一个禁用命令的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;

    }

}
Run Code Online (Sandbox Code Playgroud)