31

WPFテキストボックスの切り取り、コピー、貼り付けを制限するにはどうすればよいですか?

4

2 に答える 2

50

切り取り、コピー、貼り付けは、どのアプリケーションでも使用される一般的なコマンドです。

<TextBox CommandManager.PreviewExecuted="textBox_PreviewExecuted"
         ContextMenu="{x:Null}" />

上記のテキスト ボックス コードでは、CommandManager クラスの PrviewExecuted イベントでこれらのコマンドを制限できます。

コードビハインドでコードの下に追加すると、仕事は完了です

private void textBox_PreviewExecuted(object sender, ExecutedRoutedEventArgs e)
{
     if (e.Command == ApplicationCommands.Copy ||
         e.Command == ApplicationCommands.Cut  || 
         e.Command == ApplicationCommands.Paste)
     {
          e.Handled = true;
     }
}
于 2009-06-02T06:47:29.140 に答える
17

commandName=="Paste" 比較が失敗するため、commandName メソッドは日本語 OS のシステムでは機能しません。私は次のアプローチを試しましたが、うまくいきました。また、コンテキスト メニューを手動で無効にする必要もありません。

XaML ファイルで:

<PasswordBox.CommandBindings>
    <CommandBinding Command="ApplicationCommands.Paste"
    CanExecute="CommandBinding_CanExecutePaste"></CommandBinding>
</PasswordBox.CommandBindings>

コードビハインド:

private void CommandBinding_CanExecutePaste(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = false;
    e.Handled = true;
}
于 2010-06-22T16:43:21.167 に答える