我想要的是当用户点击回车键时当前聚焦的文本框何时失去焦点。我能想到实现这一目标的唯一方法是使用XAML中的输入绑定绑定到代码中的命令,该代码将整个文本框控件传递给viewmodel。我不喜欢这种方法,并希望有人有一个清洁的'解决这个问题的方法。
答案 0 :(得分:3)
您可以创建自定义文本框并将其放在控件代码中:
public partial class CustomTextBox : TextBox
{
public CustomTextBox()
{
InitializeComponent();
}
protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
if(e.Key == Key.Return)
Keyboard.ClearFocus();
}
}
然后只需在您想要特定行为的任何地方使用自定义文本框。
答案 1 :(得分:1)
通常,您在登录时会收到一个密码框,您需要输入密钥。
<PasswordBox VerticalAlignment="Center" x:Name="txtPassword" Template="{StaticResource PassBoxBaseControlTemplate}" Height="25" BorderBrush="Black" Width="165.031">
<PasswordBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding ComLoginClickOK}" CommandParameter="{Binding ElementName=txtPassword}"/>
</PasswordBox.InputBindings>
</PasswordBox>