2016-10-19 1 views
-1

이미지를 클릭하는 동안 암호를 숨기려고 시도하면 해당 코드가 아래에 제공됩니다. xaml 부분에 숨겨진 코드를 작성한 코드 뒤에 암호를 입력하기위한 텍스트 상자를 찍었습니다. 가시성을 거짓으로 만드는 동안 오류가 발생합니다. 는 텍스트 상자의 매개 변수가의 WinForm에서 이미지 enter image description here이미지에 암호를 숨기려고 시도합니다.

<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 파일

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)'는 의미가 없습니다. 확실히 Visibility.Collapsed를 설정하려고합니다. – Clemens

+0

아니요 비밀번호가 숨겨져 있지 않아야합니다. – pariwesh07

+0

[UWP 공개 설정] (https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.visibility)은 표시 또는 축소 중 하나입니다. 아니면 숨기기가 접힌 것과 어떻게 다른지 설명 할 수 있습니까? – Clemens

답변

0

실제로 내가 (검증을 넣을 경우 내가에 대한 정의를 포함하지 않습니다는 " 'PasswordBox의를'오류를주고있다 애 쓰고 PasswordBox의에 입력 한 문자열하지만, ​​경우에 (Utility.isEmptyString (txtBoxPassw.Text)) 'Text'및 'ColorBox'유형의 첫 번째 인수를 허용하는 확장 메서드가 없습니다 (사용 지시문 또는 어셈블리 참조가 누락 되었습니까?) "

이것은 마지막 코멘트이며 이 코멘트 나는 당신이 자신의 컨트롤을 만드는 대신 PasswordBox 내장 컨트롤을 사용하는 방법을 받아 들일 것이라고 가정한다.

TextBox 또는 TextBlock과 달리 PasswordBox class을 참조 할 수 있습니다. PasswordBox에는 "텍스트"라는 속성이 없습니다. 제 생각 엔 당신이 필요로하는 것은 PasswordBox.Password property입니다. 예를 들어

: 뒤에

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

코드 :

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

pass 여기에 현재 "passwb을"라는 PasswordBox 보유 암호를 나타냅니다.

-1

를 참조하십시오 'PasswordChar'(예 : * 용) 문자로 설정하는 경우는 모든 문자를 대체합니다 텍스트 상자에 추가합니다. passwordChar를 '\ o'(PasswordBox.PasswordChar = '\ 0';)로 설정하면 normal과 같은 모든 문자가 표시됩니다. 나는 UWP와 비슷한 어떤 것이 있었으면 좋겠다. 나는 UWP가 아니다.

관련 문제