ネット上で、いくつか対策があるようですけど、TextBox派生させる方法をやってみました。
using System.Windows.Controls;
class PassBox : TextBox
{
private bool _onChanged;
private string _pass = string.Empty;
protected override void OnTextChanged(TextChangedEventArgs e)
{
if (_onChanged) return;
var car = 0;
var str = _pass;
foreach (var change in e.Changes)
{
str = str.Substring(0, change.Offset) + Text.Substring(change.Offset, change.AddedLength) + str.Substring(change.Offset+ change.RemovedLength);
car = change.Offset + change.AddedLength;
}
_pass = str;
_onChanged = true;
Text = new string('*', str.Length);
_onChanged = false;
Select(car, 0);
base.OnTextChanged(e);
}
public string Password
{
get { return _pass; }
set { Text = value; }
}
}
Passwordで設定・取得ができます。Textを読み込んでも、梅干し食べ過ぎみたい、あるいは犬ぞりに乗ってる感じになるだけです。
利用等に何の制限もかけませんし、何の保障もしません。
自由にお使いください。