gpt4 book ai didi

c# - WPF如何使文本框在按下回车后失去焦点

转载 作者:太空狗 更新时间:2023-10-29 17:32:01 27 4
gpt4 key购买 nike

我创建了一些文本框,我希望用户在其中输入十进制值。在我使用过的每个应用程序中,当我在文本框中输入内容并按下回车键时,该值被接受并且文本框失去焦点。我怎样才能在我的应用程序中做到这一点?我知道用一个键事件来做应该相对容易,但也许有命令什么的。我搜索了 stackoverflow,但我只发现了有关如何在按下 enter 后保持焦点的问题...

最佳答案

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

public class TextBoxEnterKeyUpdateBehavior : Behavior<TextBox>
{
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 中使用此类,只需将其包含在文本框行为集合中,如下所示:-

<TextBox>
<i:Interaction.Behaviors>
<TextBoxEnterKeyUpdateBehavior />
</i:Interaction.Behaviors>
</TextBox>

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

关于c# - WPF如何使文本框在按下回车后失去焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23613171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com