如何使用enter键提交登录详细信息

时间:2013-07-03 15:02:02

标签: xaml winrt-xaml

我有一个基本的登录页面,

    <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键,我该如何模拟按下的“登录”按钮?

谢谢!

3 个答案:

答案 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();
}