我想要一个WPF TextBox,当你在其中键入一个空格时,将该空格显示为一个点或一些其他字符(显然仍然将该空间存储为其值)。
例如,如果我输入<space><space>abc
,我希望TextBox显示..abc
,但如果我得到.Text
,它仍应返回<space><space>abc
。
答案 0 :(得分:1)
看看这是否能解决您的问题。
public class NewTextBox : TextBox
{
static NewTextBox()
{
TextBox.TextProperty.OverrideMetadata(typeof(NewTextBox),
new FrameworkPropertyMetadata(
"n/a",
TextBox.TextProperty.DefaultMetadata.PropertyChangedCallback,
new CoerceValueCallback(textValueCallback)));
}
private static object textValueCallback(DependencyObject d, object baseValue)
{
return baseValue.ToString().Replace(' ', '.');
}
public new string Text
{
get { return base.Text.Replace('.', ' '); }
}
}