TextBox忽略“Space”键输入。为什么?

时间:2012-07-26 07:26:07

标签: c# silverlight windows-phone-7

我正在为Windows Phone 7开发一个应用程序,我遇到了标准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为“Unknown”(args.PlatformKeyCode为“160”)。我在我的应用程序的其他地方有文本框(虽然不是动态的),但它们工作正常。

在模拟器和设备上测试过(如果这有任何区别,我有HTC Mozart)。为芒果开发。

1 个答案:

答案 0 :(得分:2)

事实证明问题是由于TextBox位于Button内导致的(因为我需要能够点击整个"事情")。将其置于Button之外解决问题。