我想要的是当用户按下Enter键时当前焦点对准的文本框失去焦点的时候。我能想到的唯一方法是通过使用XAML中的输入绑定(bind)将代码绑定(bind)到将整个文本框控件传递到 View 模型的代码中的命令。我不喜欢这种方法,希望有人能够以一种“干净”的方式解决这个问题。

最佳答案

您可以创建一个自定义文本框,并将其放入控件代码中:

public partial class CustomTextBox : TextBox
{
    public CustomTextBox()
    {
        InitializeComponent();
    }

    protected override void OnKeyDown(KeyEventArgs e)
    {
        base.OnKeyDown(e);
        if(e.Key == Key.Return)
        Keyboard.ClearFocus();
    }
}

然后,只需在需要该特定行为的地方使用自定义文本框即可。

关于c# - WPF MVVM在Enter键上取消选择文本框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26551447/

10-14 16:38
查看更多