c# - 当我单击 CheckBox 时,Wpf PasswordBox 必须显示字符

标签 c# wpf vb.net

xaml

<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel VerticalAlignment="Center" Width="300">
    <PasswordBox x:Name="PasswordBox1" Height="30" PasswordChar="*" Password="12345"/>
    <CheckBox x:Name="CheckBox1" Content="Show Password"/>
</StackPanel>
</Window>

vb.net

Class MainWindow 
Private Sub CheckBox1_Checked(sender As Object, e As RoutedEventArgs) Handles CheckBox1.Checked
    PasswordBox1.PasswordChar = CChar("")
End Sub
Private Sub CheckBox1_Unchecked(sender As Object, e As RoutedEventArgs) Handles CheckBox1.Unchecked
    PasswordBox1.PasswordChar = CChar("*")
End Sub
End Class

运行以上代码并单击 CheckBox1 以了解发生了什么。

当我点击 CheckBox 时,PasswordBox 如何显示 12345 的字符?

因此,需要修复以下行。

PasswordBox1.PasswordChar = CChar(" ")

最佳答案

这将适用于您正在寻找的内容,尽管它会在内存中暴露您的密码。我们在 UI 的同一位置有一个文本框和一个密码框,当用户选中“显示密码”复选框时,我们折叠密码框并显示隐藏的文本框,同时更新文本。发送密码时,您需要检查您是否使用可见 UI 控件中的密码。

Xaml 代码:

<StackPanel Orientation="Horizontal">
  <Grid Width="300" Height="40">
    <PasswordBox Name="passwordBox" PasswordChar="*" />
    <TextBox Name="passwordTxtBox" Visibility="Collapsed" />
  </Grid>
<CheckBox Margin="10" Name="showPassword" Unchecked="ShowPassword_Unchecked"  Checked="ShowPassword_Checked" />
</StackPanel>

代码隐藏:

    private void ShowPassword_Checked(object sender, RoutedEventArgs e)
    {
        passwordTxtBox.Text = passwordBox.Password;
        passwordBox.Visibility = Visibility.Collapsed;
        passwordTxtBox.Visibility = Visibility.Visible;
    }

    private void ShowPassword_Unchecked(object sender, RoutedEventArgs e)
    {
        passwordBox.Password = passwordTxtBox.Text;
        passwordTxtBox.Visibility = Visibility.Collapsed;
        passwordBox.Visibility = Visibility.Visible;
    }

关于c# - 当我单击 CheckBox 时,Wpf PasswordBox 必须显示字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50650292/

相关文章:

c# - 表单中的 MVC4 多按钮不工作 JQM

c# - 错误 : Not all code paths return a value

c# - 更改按钮内容 MVVM

c# - 无法将存储过程表输出获取到我的 .NET 应用程序中

c# - 什么是NullReferenceException,如何解决?

c# - "Type is not cls-compliant"某些地方有警告,但其他地方没有警告

c# - 继承上下文时避免从基本 EF Core 3.0 模型重新建模对象

C# 将格式化字符串 (31.2k) 转换回数字 (31240)

c# - 使用 C# 绑定(bind)到 WPF 中的 UserControl

c# - 模拟 ShowDialog 功能