2012-11-06 69 views
1

我正在使用WPF .net 3.5應用程序。阻止文本框中的雙字節字符

我需要創建自己的密碼箱,因爲內置安全問題之一。 新的PasswordwordBox基於常規的TextBox。

一切工作正常,只有在WPF密碼箱雙字節字符被阻止,並且我想將此行爲也添加到我的新密碼箱中。

我該怎麼做?

+1

什麼是雙字節字符,爲什麼要阻止它們?爲什麼一個基於TextBox的密碼框比內置的密碼盒更安全? – CodesInChaos

+1

很多問題:)在中文中,爲了表示一個字符,需要2個字節,所以當您按下keyborad中的某個鍵時,會出現一個小窗口,其中包含要選擇的字符數(這意味着如果按例如'G'可能意味着多於一個字符)。這對於密碼箱來說是不可接受的,因爲那時有人可以看到你選擇的密鑰是什麼。 – user844541

+1

在這種情況下,您應該阻止IME,而不是具有較高代碼點的字符。有很多字符的代碼點高於255,並且使用普通鍵輸入。順便說一句,因爲.net使用UTF-16處理所有事情(16位'char's),每個字符至少需要2個字節(少數幾個需要4個字節)。所以多字節字符分類不再有用了。 – CodesInChaos

回答