Не думайте, что это возможно с помощью PasswordBox ... просто мысль, но вы можете выполнить тот же результат, используя скрытый TextBox, и когда пользователь нажмет на CheckBox, вы просто скроете PasswordBox и покажете TextBox; если он снова щелкнет, вы снова переключите свое состояние видимости и так далее ...
Edit
И вот как это делается!
Просто добавьте страницу , измените 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" />
Далее, в коде страницы добавьте следующее:
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();
}
Это отлично работает, но с еще несколько работ, вы можете сделать это полностью MVVM'ed!
openssl_cipher_iv_length()
- это стандартная PHP-функция из модуля OpenSSL. Ваше сообщение об ошибке гласит:
undefined function Illuminate\Encryption\openssl_cipher_iv_length()
Обратите внимание, что имени функции предшествует Illuminate\Encryption
- это указывает на то, что PHP считает, что функция находится в пространстве имен Illuminate\Encryption
, но это не так. Чтобы исправить это, вы можете явно связать вызов функции с корневым пространством имен, добавив перед ним обратную косую черту:
\openssl_cipher_iv_length()
Эта ошибка также может означать, что openssl_cipher_iv_length()
просто нигде не доступен, а [116 ] namespace - это просто последнее место, где оно выглядело. В этом случае вам нужно убедиться, что у вас установлен модуль OpenSSL, но учтите, что конфигурация командной строки отличается от конфигурации встроенного веб-сервера. То есть, запуск php -m
из командной строки может сообщить о доступности OpenSSL, но он может быть не загружен для версии веб-сервера. Поэтому запустите phpinfo()
на странице, обслуживаемой вашим веб-сервером, чтобы убедиться, что OpenSSL действительно загружен.