2010-06-16 26 views

Trả lời

8

Bạn có thể thực hiện việc này khá dễ dàng bằng cách sử dụng sự kiện định tuyến CommandManager.PreviewCanExecute. Trong XAML của bạn, bạn sẽ đặt như sau trên phần tử TextBox của bạn. Điều này sẽ áp dụng cho CTL + V, vv cũng như menu ngữ cảnh hoặc bất kỳ nút nào mà bạn có thể ánh xạ tới các lệnh đó để nó rất hiệu quả.

<TextBox CommandManager.PreviewCanExecute="HandleCanExecute" /> 

Sau đó, trong mã của bạn, hãy thêm phương thức HandleCanExecute để vô hiệu hóa lệnh.

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; 

    } 

} 
Các vấn đề liên quan