在WPF中,PreviewTextInput是否始终仅提供单个字符?

时间:2014-04-30 20:12:00

标签: c# wpf

在WPF中处理TextBox的PreviewTextInput事件时,事件参数(TextCompositionEventArgs)的Text属性是否可以包含通过键盘输入的最后一个字符以外的其他内容?

我给了它一个彻底的测试,它似乎只包含最后一个按键的单个字符值。但是,我可能遗漏了一些明显的东西,因为它的类型是String而不是Char

4 个答案:

答案 0 :(得分:4)

来自UIElement.PreviewTextInput文档。

  

键盘是PreviewTextInput的主要手段; 但是发言,   手写和其他输入设备也可以生成   PreviewTextInput

我认为非键盘源一次可以提供多个字母。

答案 1 :(得分:1)

是的,它只会为您提供按下的最后一个字符。

答案 2 :(得分:1)

它只会为你提供你所按的角色,你怎么能从文本框中获取完整的文本Text属性本身就像var text = (sender as TextBox).Text

答案 3 :(得分:0)

是的,顾名思义,它会预览大多数情况下恰好是单个字符的每个输入。

使用 TextCompositionEventArgs,您可以使用 e.Text 访问新文本。

或者, 如果你想要整个文本,你可以像

string full = myTextBox.Text.Insert(myTextBox.CaretIndex, e.Text);