在Silverlight中按Text键

Bud*_*sey 10 c# silverlight silverlight-2.0

我正在开发一个silverlight应用程序,您需要将信息输入文本框,然后按Enter键.好吧,没有onclick事件,我可以找到,所以我做的是使用onkeypressup事件并检查是否是按下的回车键,如果这样做"blah".

感觉就像有更好的方法来做到这一点.所以问题是,有吗?

小智 12

我认为这是捕获Key.Enter的方法.

此外,如果您使用KeyDown事件而不是KeyUp事件,您的代码将更具可读性.

如果您只关心捕获单个控件的Key.Enter,那么您的方法是正确的.

您还可以使用其容器的KeyDown事件("Event Bubbling")捕获一组相关控件的Key.Enter.


Sha*_*uth 6

你真的想在文本框中使用它吗?我会在容器上放一个onkeyup处理程序(例如Grid,Canvas)来按下窗体上任何地方的按钮.


小智 5

如果您使用想要绑定Command属性而不是使用Click事件,这将起作用.首先为Click创建一个事件处理程序(见下文),然后在KeyUp中执行:

    private void MyTextBox_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter) SomeButton_Click(this, null);

    }

    private void SomeButton_Click(object sender, RoutedEventArgs e)
    {
        ICommand cmd = SomeButton.Command;
        if (cmd.CanExecute(null))
        {
            cmd.Execute(null);
        }
    }
Run Code Online (Sandbox Code Playgroud)