我正在尝试重新映射文本框的输入。例如。如果用户输入N然后我想将其更改为9.我认为最好尝试在PreviewKeyDown事件中捕获它,尽管我还需要处理粘贴尝试(我可以解决这个问题)
PreviewKeyDown是一个很好的起点吗?如果是,我该如何发送替换密钥。我知道e.Handled = true会停止正在处理的原始密钥。
感谢。
答案 0 :(得分:0)
我会将文本框子类化并添加所需的行为。 (附加行为是另一种选择,但我更喜欢派生类。)
public class MyTextBox : TextBox
{
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
if (e.Key == Key.N)
{
e.Handled = true;
Text += '9';
// Setting Text annoyingly puts SelectionStart at 0
this.SelectionStart = Text.Length;
}
else
{
base.OnPreviewKeyDown(e);
}
}
}