在密码箱的某些事件上显示密码字符

rak*_*esh 5 c# passwords user-interface xaml windows-phone-7

我正在开发一个Windows Phone应用程序.我要求用户登录.

在登录页面上,用户必须输入密码.

现在我想要的是,我给用户一个复选框,选中后应该显示密码的字符.

我没有在密码框上看到任何显示密码字符的属性.

请建议一些方法来做到这一点.

Ped*_*mas 22

不要认为使用PasswordBox是可能的......只是想一想,但是你可以使用隐藏的TextBox完成相同的结果,当用户点击CheckBox时,你只需隐藏PasswordBox并显示TextBox; 如果他再次点击,你再次切换他们的可见性状态,依此类推......

编辑

这是怎么回事!

只需添加一个页面,将ContentPanel更改为StackPanel并添加此XAML代码:

<PasswordBox x:Name="MyPasswordBox" Password="{Binding Text, Mode=TwoWay, ElementName=MyTextBox}"/>
<TextBox x:Name="MyTextBox" Text="{Binding Password, Mode=TwoWay, ElementName=MyPasswordBox}" Visibility="Collapsed" />
<CheckBox x:Name="ShowPasswordCharsCheckBox" Content="Show password" Checked="ShowPasswordCharsCheckBox_Checked" Unchecked="ShowPasswordCharsCheckBox_Unchecked" />
Run Code Online (Sandbox Code Playgroud)

接下来,在页面代码上添加以下内容:

private void ShowPasswordCharsCheckBox_Checked(object sender, RoutedEventArgs e)
{
    MyPasswordBox.Visibility = System.Windows.Visibility.Collapsed;
    MyTextBox.Visibility = System.Windows.Visibility.Visible;

    MyTextBox.Focus();
}

private void ShowPasswordCharsCheckBox_Unchecked(object sender, RoutedEventArgs e)
{
    MyPasswordBox.Visibility = System.Windows.Visibility.Visible;
    MyTextBox.Visibility = System.Windows.Visibility.Collapsed;

    MyPasswordBox.Focus();
}
Run Code Online (Sandbox Code Playgroud)

这很好用,但是还有一些工作,你可以完全做MVVM!

  • 好吧,它不起作用,因为VS2015说,你不能绑定密码箱的密码:( (7认同)
  • 是的,不再工作,也许以这种方式更新您的答案。 (3认同)