WPF密码框中禁止复制、粘贴

这次合作展示的时候,师姐提出来密码框不可以复制和粘贴,我看了QQ果然是这样的。我们登陆界面是wpf,代码如下:

XAML端代码:

<PasswordBox x:Name="txtPwd" FontSize="18" MaxLength="18" HorizontalAlignment="Left" Margin="134.2,151,0,0" VerticalAlignment="Top" Width="120" Height="23" GotFocus="TxtPwd_GotFocus" LostFocus="TxtPwd_LostFocus" Background="{x:Null}" PreviewKeyDown="TxtPwd_PreviewKeyDown" Grid.Column="6" InputMethod.IsInputMethodEnabled="False" TabIndex="2">

//定义两个方法:CommandBinding_Executed和CommandBinding_CanExecute
 <PasswordBox.CommandBindings>
<CommandBinding Command="ApplicationCommands.Paste" Executed="CommandBinding_Executed" CanExecute="CommandBinding_CanExecute"/>
</PasswordBox.CommandBindings>
</PasswordBox> 

在CS文件中写入下面两个方法:

        **//密码不可以复制,粘贴**
        private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
        {

        }
        private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            e.Handled = true;//表示该操作已经处理过了,不再处理(意思是说,不能再进行复制)
        }
禁止PasswordBox控件中的复制粘贴和剪切操作,你可以使用一些技巧来实现。以下是一种常用的方法: 1. 创建一个自定义的PasswordBox控件,并重写其OnPreviewKeyDown和OnPreviewExecuted方法。 ```csharp public class CustomPasswordBox : PasswordBox { protected override void OnPreviewKeyDown(KeyEventArgs e) { if (e.Key == Key.V && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { e.Handled = true; // 禁止粘贴操作 } else if (e.Key == Key.C && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { e.Handled = true; // 禁止复制操作 } else if (e.Key == Key.X && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { e.Handled = true; // 禁止剪切操作 } else { base.OnPreviewKeyDown(e); } } protected override void OnPreviewExecuted(ExecutedRoutedEventArgs e) { if (e.Command == ApplicationCommands.Copy || e.Command == ApplicationCommands.Cut || e.Command == ApplicationCommands.Paste) { e.Handled = true; // 禁止复制、剪切、粘贴命令 } else { base.OnPreviewExecuted(e); } } } ``` 在上述代码中,我们重写了OnPreviewKeyDown和OnPreviewExecuted方法,通过判断按键事件和执行命令来禁止复制粘贴和剪切操作。对于禁止操作,我们将事件的Handled属性设置为true,以阻止默认行为。 2. 在XAML中使用自定义的PasswordBox控件。 ```xml <local:CustomPasswordBox x:Name="passwordBox" PasswordChar="●" /> ``` 在上述代码中,我们使用名为CustomPasswordBox的自定义PasswordBox控件,并设置PasswordChar属性为"●"。 通过这种方式,你可以禁止PasswordBox控件中的复制粘贴和剪切操作。 希望对你有所帮助!如果还有其他问题,请随时提问。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值