0
我试图重新映射文本框的输入。例如。如果用户输入N,那么我想将其更改为9.我认为尽可能在PreviewKeyDown事件中尝试捕获它,尽管我还需要处理粘贴尝试(我可以解决这个问题) 。WPF键盘重映射
PreviewKeyDown是一个很好的开始?如果是这样,我该如何发送替换密钥。我知道e.Handled = true会停止正在处理的原始密钥。
谢谢。
我试图重新映射文本框的输入。例如。如果用户输入N,那么我想将其更改为9.我认为尽可能在PreviewKeyDown事件中尝试捕获它,尽管我还需要处理粘贴尝试(我可以解决这个问题) 。WPF键盘重映射
PreviewKeyDown是一个很好的开始?如果是这样,我该如何发送替换密钥。我知道e.Handled = true会停止正在处理的原始密钥。
谢谢。
我会继承该文本框并添加所需的行为。 (附加行为是另一种选择,但我更喜欢派生类。)
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);
}
}
}