对于“常见”外观我有一个应用程序,在功能区中显示粘贴/剪切/复制按钮,但我想要无论选择哪个字段都要禁用粘贴。我该如何处理?
答案 0 :(得分:1)
默认情况下,WPF中的所有控件都有一个默认ContextMenu
,允许复制,粘贴和剪切。您可以通过将此属性设置为“{x:Null}”
来禁用此菜单,但与菜单选项关联的键仍然有效。为了禁用此命令,我们可以使用DataObject
类,它具有处理程序以附加任何DepencencyObject
以防复制或粘贴:
DataObject.AddPastingHandler(control, this.OnCancelCommand);
DataObject.AddCopyingHandler(control, this.OnCancelCommand);
最后在事件处理程序中,我们需要取消当前命令:
private void OnCancelCommand(object sender, DataObjectEventArgs e)
{
e.CancelCommand();
}
CancelCommand方法将取消通过控件发送的任何ApplicationCommand.Copy, ApplicationCommand.Paste
和ApplicationCommand.Cut。现在,如果要启用复制而不是删除调用AddCopyingHandler
代码的日期对象,它将起作用。