Comment faire pour couper, copier et coller une zone de texte WPF restreinte?Rendre la zone de texte WPF coupée, copier et coller restreinte
Répondre
Couper, Copier et Coller sont les commandes les plus courantes utilisées toute application,
<TextBox CommandManager.PreviewExecuted="textBox_PreviewExecuted"
ContextMenu="{x:Null}" />
dans le code de zone de texte ci-dessus, nous pouvons limiter ces commandes en cas PrviewExecuted de CommandManager classe
et ajouter du code derrière sous le code et votre travail est fait
private void textBox_PreviewExecuted(object sender, ExecutedRoutedEventArgs e)
{
if (e.Command == ApplicationCommands.Copy ||
e.Command == ApplicationCommands.Cut ||
e.Command == ApplicationCommands.Paste)
{
e.Handled = true;
}
}
Je pense que je dois aussi mettre le contextmenu à null – Sauron
C'est parfait, si u désactiver le menu contextuel –
Je suggère à tout le monde de l'utiliser sous la forme suivante: 'e.Command == ApplicationCommands.Cut', au lieu de lancer et de s'appuyer sur une chaîne qui pourrait changer en raison de la localisation. – VitalyB
la méthode commandName ne fonctionnera pas sur un système avec OS japonais comme commandName == « Coller » wi comparision Je vais échouer. J'ai essayé l'approche suivante et cela a fonctionné pour moi. De plus, je n'ai pas besoin de désactiver le menu contextuel manuellement.
Dans le fichier XAML:
<PasswordBox.CommandBindings>
<CommandBinding Command="ApplicationCommands.Paste"
CanExecute="CommandBinding_CanExecutePaste"></CommandBinding>
</PasswordBox.CommandBindings>
Dans le code sous-jacent:
private void CommandBinding_CanExecutePaste(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = false;
e.Handled = true;
}
Je ne sais pas beaucoup sur WPF. Vous pouvez utiliser une étiquette à la place (qui ne vous laissera pas couper/copier/coller – shahkalpesh
Mais je veux que l'utilisateur saisisse des données par le clavier – Sauron