首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >单击CheckBox时,Wpf PasswordBox必须显示字符

单击CheckBox时,Wpf PasswordBox必须显示字符
EN

Stack Overflow用户
提问于 2018-06-02 03:59:50
回答 2查看 1.3K关注 0票数 2

xaml

代码语言:javascript
复制
<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

代码语言:javascript
复制
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(“")

EN

回答 2

Stack Overflow用户

发布于 2018-06-02 09:27:21

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

Xaml代码:

代码语言:javascript
复制
<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>

代码隐藏:

代码语言:javascript
复制
    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;
    }
票数 0
EN

Stack Overflow用户

发布于 2019-10-14 15:47:33

我推荐使用MahApps.Metro ...从nuget.org安装后...您必须将它导入到xaml的头部,就像这样的xmlns:controls="http://metro.mahapps.com/winf/xaml/controls

然后..。只需为您的PasswordBox控件使用它的样式

代码语言:javascript
复制
<PasswordBox  Style="{StaticResource MetroButtonRevealedPasswordBox}" />

您甚至可以使用controls:PasswordBoxHelper.RevealButtonContent attached属性更改显示图标的内容

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50650292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档