我有一個PasswordBox
,但是如果用戶輸入的字符太多,或者輸入了他們不應該擁有的字符,或者其他第三個字符,我需要這個更改以表現它從未發生過。例如:最大長度爲5,但輸入5個字符後,用戶輸入第6個。我想刪除第6個字符。WPF在CodeBehind中設置密碼框
我一直在尋找幾個小時,但我發現最接近的東西是this SO question。答案的第一行是,「你不能。」如果事情是這樣,那就這樣吧。但是,對我來說,感覺就像有一些方法可以做到這一點。
我試過了很多方法,但無濟於事。 PasswordBox
沒有像TextBox那樣的Undo
方法。試着保留DependencyProperty
,並使用OnDPChanged,重置給定e.OldValue
,但它是獨立於PasswordBox的DP。我甚至認爲要保持m_oldPassword
變量,但正如鏈接的帖子所說,「你不能。」。
理論上,我可以按照MyPasswordBox.Password = MyPasswordBox.Password.SubString(0, passLen - 1);
的方法做一些事情,但是1,我不想公開正常的字符串出於安全原因,2,它不會總是最後一個字符,會是問題,用戶可能在中間輸入了一些東西。
官方問題:如何在代碼隱藏中使用SecureString
來重置PasswordBox
? (注:我沒有任何代碼可以顯示,因爲大部分/所有這一切都是理論上的此刻)
爲什麼你需要那個和其他人不需要? –
你可以重述一下這個問題嗎?恐怕我不太明白你在問什麼。 –
我的意思是如果別人不抱怨控制爲什麼你?如果你想要一個特殊的控制,然後創建你自己的客戶控制。 –