我正在开发一个silverlight应用程序,您需要将信息输入文本框,然后按Enter键.好吧,没有onclick事件,我可以找到,所以我做的是使用onkeypressup事件并检查是否是按下的回车键,如果这样做"blah".
感觉就像有更好的方法来做到这一点.所以问题是,有吗?
我认为这是捕获Key.Enter的方法.
此外,如果您使用KeyDown事件而不是KeyUp事件,您的代码将更具可读性.
如果您只关心捕获单个控件的Key.Enter,那么您的方法是正确的.
您还可以使用其容器的KeyDown事件("Event Bubbling")捕获一组相关控件的Key.Enter.
你真的想在文本框中使用它吗?我会在容器上放一个onkeyup处理程序(例如Grid,Canvas)来按下窗体上任何地方的按钮.
如果您使用想要绑定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); } }