在winrt中加水印的PasswordBox

时间:2013-03-23 09:12:53

标签: windows-8 passwords winrt-xaml

是否可以在WinRt中获取水印密码箱?获得带有水印的文本框是没有问题的,但我不知道一个工具包,我可以在其中获得带有水印的密码框。

我如何为自己实施一个?

4 个答案:

答案 0 :(得分:4)

查看WinRT XAML Toolkit

他们也有

  1. WatermarkTextBox
  2. WatermarkPasswordBox
  3. 您可以自己实施自己的控制:

    in .xaml:

     <Border x:Name="brdPassword" Margin="5,0,5,10" BorderThickness="2" BorderBrush="White" CornerRadius="5" Grid.Row="0"
                                    Background="White" Height="50" VerticalAlignment="Stretch">
                               <Grid>
                    <TextBox x:Name="PasswordWatermark" TextWrapping="Wrap" 
                              Text="Watermark"  Foreground="#FFC4C4C4" IsHitTestVisible="False" 
                              Background="{x:Null}" BorderThickness="0" Padding="0,-10" 
                              FontSize="26.667" />
                     <PasswordBox x:Name="pbPassword" LostFocus="PasswordLostFocus"
                             GotFocus="PasswordGotFocus" Background="{x:Null}" 
                             FontSize="26.667" Margin="0,-12,0,-9" VerticalAlignment="Center"
                             BorderThickness="0" Opacity="0" />
                    </Grid>
                    </Border>
    

    in .cs

        private void PasswordLostFocus(object sender, RoutedEventArgs e)
        {
            CheckPasswordWatermark();
        }
    
        private void CheckPasswordWatermark()
        {
            var passwordEmpty = string.IsNullOrEmpty(pbPassword.Password);
            PasswordWatermark.Opacity = passwordEmpty ? 100 : 0;
            pbPassword.Opacity = passwordEmpty ? 0 : 100;
        }
    
        private void PasswordGotFocus(object sender, RoutedEventArgs e)
        {
            PasswordWatermark.Opacity = 0;
            pbPassword.Opacity = 100;
        }
    

    希望有所帮助

答案 1 :(得分:1)

我认为我们不能在密码控件中添加水印。 您可以使用密码控件将带有wartermark的TextBox放在同一行和同一列中,然后处理两个控件'GotFocus和LostFocus事件以使控件可见或折叠。

答案 2 :(得分:0)

还没有提供水印密码框的工具包。不过这可能会有所帮助: -

http://code.msdn.microsoft.com/windowsdesktop/Watermarked-TextBox-and-444ebdec

答案 3 :(得分:0)

另外,请查看http://julmar.com/blog/mark/?p=300以获取WinRT的Textbox和PasswordBox实现。