2016-10-19 3 views
-1

versuchen, Passwort zu verstecken, während Sie auf das Bild, der Code unten angegeben. In der Xaml Teil habe ich Textbox für die Annahme von Passwort in den Code hinter ich hatte den Code zum Verstecken aber es geschrieben gibt einen Fehler, während die Sichtbarkeit falsch gemacht wird. Siehe Bild enter image description hereversuchen, Passwort auf Bild verstecken klicken

<TextBox Name="txtBoxPassw" Height="45" Width="246" InputScope="Password" Margin="10,5,5,5" Background="White" VerticalAlignment="Center" 
         FontSize="25" FontFamily="Segoe UI Light" Visibility="Visible" Foreground="Black" Padding="50,5,5,5" TextWrapping="Wrap" 
         BorderThickness="0,0,0,2" BorderBrush="Gray" /> 
       <Canvas Margin="58,-45,136,0"> 
        <Image x:Name="passLogo" Source="Assets/ic_pass.png" Height="41" Width="41" /> 
       </Canvas> 
       <!--19oct--> 
       <TextBlock Name="txtBlockPasswFieldError" Grid.Row="2" Margin="-60,0,0,0" Foreground="Black" Text="*Please enter valid name" 
         HorizontalAlignment="Center" Visibility="Visible" FontSize="11"/> 
       <!--19oct--> 
       <Image Name="showimg" Source="Assets/show_pass.png" Width="25" Height="50" Margin="50,15,40,10" Tapped="Image_Tapped" Stretch="Uniform"/> 
       <TextBlock Name="showPass" 
        Text="Show Password" 
        Foreground="#303030" 
        FontSize="15" 
        FontFamily="Koblenz Serial Medium" 
        Margin="200,-45,15,20" /> 

cs Datei

private void Image_Tapped(object sender, TappedRoutedEventArgs e) 
     { 

      BitmapImage bitcurrentimage = showimg.Source as BitmapImage; 
      //if (showimg.Source == new BitmapImage(new Uri("ms-appx:///Assets/show_pass.png", UriKind.RelativeOrAbsolute))) 
      if (bitcurrentimage.UriSource.AbsoluteUri == "ms-appx:///Assets/show_pass.png") 
      { 
       //passBox.PasswordRevealMode = PasswordRevealMode.Visible; 
       txtBoxPassw.Visibility = Visibility.Visible; 
       showPass.Text = "Hide Password"; 
       SetImage("ms-appx:///Assets/hide_pass_.png"); 
      } 
      else 
      { 
       //passBox.PasswordRevealMode = PasswordRevealMode.Hidden; 
       txtBoxPassw.Visibility = Visibility.Visible.Equals(false); 
       showPass.Text = "Show Password"; 
       SetImage("ms-appx:///Assets/show_pass.png"); 
      } 

     } 
+0

'Visibility.Visible.Equals (false)' ergibt keinen Sinn. Sie möchten "Sichtbarkeit.Kollaps" festlegen. – Clemens

+0

Nein Ich möchte, dass das Kennwort nicht ausgeblendet werden sollte – pariwesh07

+0

[UWP Visibility] (https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.visibility) ist entweder sichtbar oder minimiert. Oder können Sie erklären, wie sich "ausblenden" von "Eingeschaltet" unterscheidet? – Clemens

Antwort

0

eigentlich möchte ich die Validierung setzen (if (Utility.isEmptyString (txtBoxPassw.Text)) auf die Saite in PasswordBox getippt, aber wenn ich es versuche Fehler geben „‚PasswordBox‘enthält keine Definition für ‚Text‘ und keine Erweiterungsmethode ‚Text‘ ein erstes Argument vom Typ ‚PasswordBox‘ akzeptieren konnte gefunden werden (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis?)“

Dies ist Ihre letzte Kommentar, und aus Dieser Kommentar Ich nehme an, dass Sie die Methode akzeptieren, das integrierte Steuerelement PasswordBox zu verwenden, anstatt ein eigenes zu erstellen.

Dann können Sie beziehen sich auf PasswordBox class, im Gegensatz zu TextBox oder TextBlock, PasswordBox hat keine Eigenschaft namens "Text". Ich denke, was Sie brauchen, ist die PasswordBox.Password property.

Zum Beispiel:

<PasswordBox x:Name="passwb" Height="30" IsPasswordRevealButtonEnabled="True" /> 
<Button Content="click" VerticalAlignment="Bottom" Click="Button_Click" /> 

-Code hinter:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    var pass = passwb.Password; 
} 

Die pass hier zeigt das Passwort derzeit von den PasswordBox gehalten, die "passwb" genannt.

-1

In Winform gibt es eine Textbox Parameter 'PasswordChar', wenn Sie es auf ein Zeichen (zB *) erhält es alle Zeichen in der ersetzen Textfeld zu diesem Zeichen. Wenn Sie den passwordChar auf '\ o' setzen (PasswordBox.PasswordChar = '\ 0';), werden alle Zeichen wie normal angezeigt. Ich hoffe, dass es in UWP etwas Ähnliches gibt - ich bin nicht in UWP.

Verwandte Themen