我想在文本框中禁止剪切,复制和粘贴操作。
我不希望用户通过键盘或文本框中的默认上下文菜单执行任何这些操作。
请告诉我如何限制这些操作?
答案 0 :(得分:9)
使用CommandManager.PreviewCanExecute路由事件可以非常轻松地完成此操作。在您的XAML中,您将把以下内容放在TextBox元素上。这将适用于CTL + V等,以及上下文菜单或您可能已映射到这些命令的任何按钮,因此它非常有效。
<TextBox CommandManager.PreviewCanExecute="HandleCanExecute" />
然后在您的代码隐藏中,添加一个禁用命令的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;
}
}