WPF如何在输入后使文本框失去焦点

我创建了一些文本框,我希望用户在其中输入十进制值。 在我曾经使用的每个应用程序中,当我在文本框中键入内容并按Enter键时,该值被接受并且文本框失去焦点。 我怎么能在我的应用程序中执行此操作? 我知道用一个关键事件来做它应该相对容易,但也许有一个命令或什么的。 我搜索了stackoverflow,但我发现有关如何在输入后保持焦点的问题…

您还可以创建一个通用行为,可以轻松应用于应用程序中的任何文本框。 这是一个示例行为类: –

 public class TextBoxEnterKeyUpdateBehavior : Behavior { protected override void OnAttached() { if (this.AssociatedObject != null) { base.OnAttached(); this.AssociatedObject.KeyDown += AssociatedObject_KeyDown; } } protected override void OnDetaching() { if (this.AssociatedObject != null) { this.AssociatedObject.KeyDown -= AssociatedObject_KeyDown; base.OnDetaching(); } } private void AssociatedObject_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { TextBox textBox = sender as TextBox; if (textBox != null) { if (e.Key == Key.Return) { if (e.Key == Key.Enter) { textBox.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next)); } } } } } 

要在xaml中使用此类,只需将其包含在文本框行为集合中,如下所示: –

      

这里“i”指的是System.Windows.Interactivity命名空间。