Интересно, у кого-нибудь есть хорошая идея, как показать пароль в PasswordBox. Читал, что вы можете привязать текстовое поле к паролю, но это не другой способ сделать это.
Хороший способ показать пароль в PasswordBox
comment
Я всегда использую TextBox для этих целей. Попробуй
- person Anton Semenov   schedule 09.06.2013
comment
Я все еще хочу скрыть значение в текстовом поле
- person mogren3000   schedule 09.06.2013
comment
хех, как оказалось, это не тривиально. посмотрите stackoverflow. ком/вопросы/10091466/
- person Anton Semenov   schedule 09.06.2013
comment
Сообщение по теме - Где я могу найти бесплатное текстовое поле с маской в WPF?
- person RBT   schedule 10.04.2018
Ответы (2)
Если вы хотите, чтобы ваш пароль был виден, используйте текстовое поле. Единственная функция поля пароля — маскировать ввод. Он не предоставляет дополнительных функций. Также возможно переключить ваше текстовое поле и поле пароля во время выполнения.
person
Remade
schedule
09.06.2013
Но если у меня есть текстовое поле, я хочу сделать его похожим на пароль. Поэтому, когда я пишу в текстовом поле, это точки вместо букв, а затем у меня есть кнопка, чтобы показать фактическое значение
- person mogren3000; 09.06.2013
В этом случае. Попробуйте это.myTextBox.PasswordChar = '*'. Посмотрим, как это работает
- person Remade; 09.06.2013
Единственная функция поля пароля — маскировать ввод — просто хотел указать, что WPF PasswordBox надежно хранит значение в памяти в свойстве SecurePassword (которое представляет собой SecureString), чего не делает TextBox.
- person Richardissimo; 02.06.2018
В элементе управления PasswordBox нет встроенных свойств для отображения символа пароля. Но мы могли бы сделать это с помощью элемента управления TextBox, чтобы отобразить пароль в PasswordBox. Для PasswordBox с функцией отображения/скрытия в WPF. Мы будем использовать два элемента управления TextBlock, элемент управления TextBox, элемент управления PasswordBox, элемент управления Image.
XAML
<Grid>
<TextBlock Text="Welcome
To see the Password"
FontSize="28"
FontWeight="Bold"
HorizontalAlignment="Center"
VerticalAlignment="Top"
TextAlignment="Center"
Margin="0,30,0,0" />
<TextBlock Text="Enter your password"
FontSize="20"
HorizontalAlignment="Left"
Margin="112,160,0,0"
VerticalAlignment="Top" />
<TextBox Height="40"
FontSize="20"
Padding="5,2,47,0"
HorizontalAlignment="Left"
Margin="112,193,0,0"
Name="txtVisiblePasswordbox"
VerticalAlignment="Top"
Width="274" />
<PasswordBox Height="40"
FontSize="20"
Padding="5,2,47,0"
HorizontalAlignment="Left"
Margin="112,193,0,0"
Name="txtPasswordbox"
VerticalAlignment="Top"
Width="274"
PasswordChanged="txtPasswordbox_PasswordChanged" />
<Image Visibility="Hidden"
Height="30"
HorizontalAlignment="Left"
Name="ImgShowHide"
Stretch="Fill"
VerticalAlignment="Top"
Width="30"
Margin="351,198,0,0"
MouseLeave="ImgShowHide_MouseLeave"
PreviewMouseDown="ImgShowHide_PreviewMouseDown"
PreviewMouseUp="ImgShowHide_PreviewMouseUp" />
</Grid>
Код позади
string AppPath = Directory.GetCurrentDirectory();
public MainWindow()
{
InitializeComponent();
ImgShowHide.Source = new BitmapImage(new Uri(AppPath + "\\img\\clip.jpg"));
}
private void ImgShowHide_PreviewMouseUp(object sender, MouseButtonEventArgs e)
{
HidePassword();
}
private void ImgShowHide_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
ShowPassword();
}
private void ImgShowHide_MouseLeave(object sender, MouseEventArgs e)
{
HidePassword();
}
private void txtPasswordbox_PasswordChanged(object sender, RoutedEventArgs e)
{
if(txtPasswordbox.Password.Length > 0)
ImgShowHide.Visibility = Visibility.Visible;
else
ImgShowHide.Visibility = Visibility.Hidden;
}
void ShowPassword()
{
ImgShowHide.Source = new BitmapImage(new Uri(AppPath + "\\img\\cus.jpg"));
txtVisiblePasswordbox.Visibility = Visibility.Visible;
txtPasswordbox.Visibility = Visibility.Hidden;
txtVisiblePasswordbox.Text = txtPasswordbox.Password;
}
void HidePassword()
{
ImgShowHide.Source = new BitmapImage(new Uri(AppPath + "\\img\\clip.jpg"));
txtVisiblePasswordbox.Visibility = Visibility.Hidden;
txtPasswordbox.Visibility = Visibility.Visible;
txtPasswordbox.Focus();
}
person
Mohit Shrivastava
schedule
23.09.2015