2011-05-05 66 views
3

有没有办法阻止用户将数据粘贴到密码框中。要求是用户不应该将密码从密码字段复制到确认密码字段。按键事件似乎并没有帮助我,因为它只会在按Ctrl键时触发,并且不会在Ctrl + V上触发。如何在Silverlight中禁用复制粘贴到密码框中

回答

1

一种解决方案可能是扩展TextBox控件以模拟PasswordBox并覆盖KeyUp/KeyDown事件以防止复制/粘贴。看来,有人为了支持东亚字符已经写的:

Allowing input of east asian characters to PasswordBox

你应该能够修改的onkeydown处理程序禁用粘贴,以及:

protected override void OnKeyDown(KeyEventArgs e) 
{ 
    if (e.Key == Key.Ctrl) 
     CtrlKeyDown = true; 

    if (CtrlKeyDown && (e.Key == Key.C || e.Key == Key.X || e.Key == Key.Z || e.Key == Key.Y || e.Key == Key.V)) 
     e.Handled = true; 
    else 
     base.OnKeyDown(e); 
} 
+0

我猜,看起来就像迄今为止唯一的解决方案。 – Manu 2011-05-24 06:38:02