2010-06-16 3 views

Répondre

8

Vous pouvez le faire assez facilement en utilisant l'événement routé CommandManager.PreviewCanExecute. Dans votre code XAML, vous devez placer ce qui suit sur votre élément TextBox. Cela s'appliquera à CTL + V, etc ainsi que le menu contextuel ou les boutons que vous avez peut-être mappés à ces commandes, donc c'est très efficace.

<TextBox CommandManager.PreviewCanExecute="HandleCanExecute" /> 

Ensuite, dans votre code-behind, ajoutez une méthode HandleCanExecute qui désactive les commandes.

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; 

    } 

}