如何在WPF中实现TextBox.InputScope

Bit*_*KFu 1 wpf textbox inputscope

我正在寻找一种方法来实现Textbox的InputScope,就像在Wp7中完成一样,但是使用经典的WPF.

我想要实现的是,输入仅限于使用十进制数字.我怎样才能做到这一点?

<TextBox Text="{Binding Amount, Mode=TwoWay}" InputScope="Number"/>
Run Code Online (Sandbox Code Playgroud)

InputScope是经典WPF的有效属性,但遗憾的是它似乎不起作用.

Pan*_*vos 6

InputScope不会强制对输入进行任何类型的验证或限制.它是输入可以在控件中输入的数据类型的处理器(例如,屏幕键盘,语音识别)的提示.

仅当激活IME(如屏幕键盘)时才使用此值.

即使在WP7中,InputScope也不限制可以在文本框中输入的值.如果您可以安装忽略InputScope的输入处理器,您仍然可以输入不需要的字符.

如果要将文本输入限制为特定字符,则必须使用MaskedTextBox或拦截击键事件.代码也将更容易理解.

可以使用InputManager的PreProcessInput事件来使用InputScope过滤输入事件,但这可能不值得.