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);
}
}
}