2012-09-06 105 views
0

對於「常見」的外觀和感覺我有一個應用程序,它顯示功能區中的粘貼/剪切/複製按鈕,但我希​​望無論選擇哪個字段都始終禁用粘貼。我如何解決這個問題?始終禁用粘貼

+5

所以你有一個你永遠不想使用的粘貼按鈕? – mydogisbox

回答

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發送過來的control.Now如果要啓用複製不是刪除dateobject調用AddCopyingHandler代碼,它會比正常工作。