2013-06-09 2 views
2

Je me demande si quelqu'un a une bonne idée de comment afficher le mot de passe dans le PasswordBox. Avoir lu que vous pouvez lier une zone de texte à un mot de passe, mais ce n'est pas une autre façon de le faire.Un bon moyen d'afficher le mot de passe dans PasswordBox

+0

J'utilise toujours TextBox pour cette fin. Essayez-le –

+0

Je veux toujours cacher la valeur dans la zone de texte – mogren3000

+0

heh, comme s'est avéré son pas trivial. regardez http://stackoverflow.com/questions/10091466/showing-password-characters-on-some-event-for-passwordbox –

Répondre

4

Si vous souhaitez que votre mot de passe soit visible, vous devez utiliser une zone de texte. La seule fonction d'une boîte de mot de passe est de masquer l'entrée. Il ne fournit pas de fonctionnalité supplémentaire. Il est également possible de changer de zone de texte et de mot de passe au moment de l'exécution

+0

Mais si j'ai une zone de texte, je veux être en mesure de le faire ressembler à une boîte de mot de passe. Donc, quand j'écris dans la zone de texte est des points au lieu de lettres et puis j'ai un bouton pour montrer la valeur actuall – mogren3000

+1

Dans ce cas. Essayez this.myTextBox.PasswordChar = '*'. Voyons voir comment cela fonctionne – Remade

1

Il n'y a aucune propriété intégrée pour afficher le caractère de mot de passe dans le contrôle PasswordBox. Mais nous pourrions le faire par le contrôle TextBox pour afficher le mot de passe dans PasswordBox. Pour PasswordBox avec la fonctionnalité afficher/masquer dans WPF. Nous utiliserons deux contrôles TextBlock, contrôle TextBox, contrôle PasswordBox, le contrôle de l'image

XAML

<Grid> 
    <TextBlock Text="Welcome&#xa;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> 

code Derrière

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(); 
} 
Questions connexes