我有一个基本的登录页面,
<TextBox x:Name="UsernameInput" HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Username, Mode=TwoWay}" VerticalAlignment="Center" Grid.Row="0" Grid.Column="2" Width="400" />
<PasswordBox HorizontalAlignment="Left" VerticalAlignment="Center" Password="{Binding Password, Mode=TwoWay}" Grid.Row="1" Grid.Column="2" Width="400"/>
<TextBlock HorizontalAlignment="Right" TextWrapping="Wrap" Text="Username: " VerticalAlignment="Center" Margin="0,0,0,15" Grid.Row="0" Grid.Column="0" Style="{StaticResource SubheaderTextStyle}"/>
<TextBlock HorizontalAlignment="Right" TextWrapping="Wrap" Text="Password: " VerticalAlignment="Center" Margin="0,0,0,15" Grid.Row="1" Grid.Column="0" Style="{StaticResource SubheaderTextStyle}"/>
<Button Content="Login" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="2" Grid.Column="2" Height="50" Width="300" Command="{Binding LoginCommand}"/>
如果用户点击密码字段中的Enter键,我该如何模拟按下的“登录”按钮?
谢谢!
答案 0 :(得分:10)
您可以使用KeyDown
的{{1}}事件。
PasswordBox
答案 1 :(得分:1)
使用PasswordBox中的KeyDown事件 -
<PasswordBox KeyDown="PasswordKeyDown"/>
然后在您的c#代码中检查是否按下了回车键,并相应地登录:
using System.Windows.Input;
private void PasswordKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
Login();
}
答案 2 :(得分:1)
如果希望所有输入字段在按Enter键时都将启动“登录”按钮,则可以使用按钮IsDefault
属性并将其设置为True,您可以阅读更多HERE。
设置为true时,如果在窗口中的某些对象处于焦点状态时按回车键,则将自动触发按钮的click事件代码。
如果您只希望PasswordBox
会启动“登录”按钮,则可以在xaml中添加keyDown
属性:
<PasswordBox KeyDown="Password_KeyDown"/>
然后在C#中添加:
private void Password_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
Login();
}