Wpf PasswordBox должен показывать символы, когда я нажимаю CheckBox - PullRequest
0 голосов
/ 01 июня 2018

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, чтобы понять, что происходит.

Как может отображаться PasswordBoxсимволы, которые 12345 , когда я нажимаю CheckBox?

Итак, необходимо исправить следующую строку.

PasswordBox1.PasswordChar = CChar ("")

1 Ответ

0 голосов
/ 02 июня 2018

Это сработает для того, что вы ищете, хотя и откроет ваши пароли в памяти.У нас есть текстовое поле и поле пароля в одном и том же месте в нашем пользовательском интерфейсе, и когда пользователь устанавливает флажок Показать пароль, мы сворачиваем поле пароля и показываем скрытое текстовое поле, одновременно обновляя текст.Вам нужно будет проверить, используете ли вы пароль из видимого элемента управления пользовательского интерфейса при отправке пароля.

Код 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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...