【发布时间】:2011-03-25 05:06:16
【问题描述】:
我有一个用于处理数字的文本框。因此,我只接受 [0-9.,]。然而, ”。”是唯一有效的小数分隔符。因此,我只希望在我的文本中使用这个,但我也想接受“,”,并用“。”交换它。这样显示的字符是有效的。
那么 - 我如何交换输入字符?我假设我可以获取它并在某些输入事件中交换它?还是在插入文本框后必须更换它?
我尝试在 OnPreviewKeyDown 和 OnPreviewTextInput 事件中交换它,但保存输入字符的属性是只读的。我想做这样的事情:
protected override void OnPreviewKeyDown(System.Windows.Input.KeyEventArgs e)
{
if (e.Key == Key.OemComma)
{
e.Key = Key.OemPeriod;
}
base.OnPreviewKeyDown(e);
}
【问题讨论】: