我正在为Windows Phone 7开发一个应用程序,并且我遇到了一个与标准TextBox相当奇怪的问题:我无法键入“空格”。所有其他按键都可以正常工作,但“空格”键只是简单地忽略,不会弹出任何错误。TextBox忽略“Space”键输入。为什么?
我动态地填充文本框。这里的代码负责这个:
var newComment = new TextBox()
{
Width = 378,
MaxLength = 128,
AcceptsReturn = true,
/*Tag = ... ,*/
/*Style = ... ,*/
/*BorderBrush = ... ,*/
Margin = new Thickness(-12, 0, 0, 0)
};
newComment.InputScope = new InputScope();
newComment.InputScope.Names.Add(new InputScopeName() { NameValue = InputScopeNameValue.Text });
newComment.KeyDown += (sender, args) =>
{
if (args.Key == System.Windows.Input.Key.Enter)
{
args.Handled = true;
/* ... */
}
};
container.Items.Add(newComment);
我注释了一些东西,(我认为)是无关紧要的。 “容器”是ListBox的一个实例。
当我在“KeyDown”事件处理程序中放置一个断点并按下“Space”时,args.Key
为“未知”(args.PlatformKeyCode
为“160”)。我有我的应用程序的其他地方(不动态虽然)的文本框,他们工作得很好。
在模拟器上以及在设备上测试(如果这有什么区别,我有HTC Mozart)。为芒果开发。
如果你打算使用Text作为输入范围,为什么你需要指定这个?创建文本框时,这不是标准吗? – 2012-07-26 07:34:54
标准的是没有自动完成功能的“默认”。 – volpav 2012-07-26 07:35:20
我现在用你的代码做了一个测试项目,它工作得很完美。它不会忽略空格键,也不会在.KeyDown事件处理程序的e.Key字段(它表示空格)中给我未知的空间键。该问题必须在代码中的其他地方。 – 2012-07-26 07:39:37