如何在KeyDown事件期间捕获TextBox的Text?

jer*_*mny 2 c# wpf events textbox

我正在尝试编写一个过滤ListBox取决于内容的页面textbox.我已经完成了所有其他工作,但我希望ListBox将过滤器应用于KeyDownTextBox中发生的每个事件.问题是,当我捕获KeyDown事件然后尝试查看TextBox.Text属性时,它仍然是空的.我想这是因为TextBox只能在失去焦点时才更新Text属性.

有关如何TextBoxKeyDown事件期间获取当前文本而不必在每个期间捕获和重建字符数组的任何想法KeyDown

谢谢!

Cod*_*ter 5

手册:

对于键盘输入,WPF首先发送相应的KeyDown/KeyUp事件.如果未处理这些事件且键是文本的(而不是方向箭头或功能键等控制键),则会引发TextInput事件.

在KeyDown事件中,您可以捕获按下的键:

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{
    Console.WriteLine(e.Key);
}
Run Code Online (Sandbox Code Playgroud)

事件退出后,按下的键将添加到.Text属性中,因此下次引发KeyDown事件时,您可以从中读取先前输入的字符.Text.