如何让 WinRT 输入范围在 C# 代码中工作,而不是 XAML

本文关键字:工作 XAML 代码 WinRT 输入 范围 | 更新日期: 2023-09-27 18:33:39

这是我的代码不起作用:

TheTextBox.InputScope = new InputScope();
TheTextBox.InputScope.Names.Add( 
    new InputScopeName( InputScopeNameValue.Number ) );

当我点击文本框时,没有显示特殊的键盘。我只是得到标准键盘。

我想让它工作,但Windows 8显然不支持这个。我已经搜索了这个问题的答案,但只找到了说要改变 XAML 的解决方案。这对我来说不是一个解决方案,因为我不喜欢拥有一堆用户控件只是为了拥有各种输入范围。

我已将此代码添加到文本控件的 Loaded 事件处理程序中。正如一个互联网答案所暗示的那样,它在那里仍然不起作用。

我尝试使用"号码"和"电话号码",但两者都不适用于代码。

我正在使用Visual Studio 2012和Windows Store C#应用程序项目。

谢谢。

戴夫

如何让 WinRT 输入范围在 C# 代码中工作,而不是 XAML

重新排序:

var inputScope = new InputScope();
inputScope.Names.Add(new InputScopeName( InputScopeNameValue.Number ) );
TheTextBox.InputScope = inputScope;

显然,一旦您设置了 InputScope 属性,它就不会监视/观察Names列表发生的任何更改。因此,在您的代码中,它始终为空。我已经更改了它以创建范围,Add它,然后在完成后设置它。

它在我的测试中有效。