2

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

我怎样才能为自己实现一个?

4

4 回答 4

4

看看WinRT XAML 工具包

他们还有

  1. 水印文本框
  2. 水印密码框

您可以自己实现自己的控件:

在 .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>

在.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;
    }

希望有帮助

于 2013-05-07T12:39:22.910 回答
1

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

于 2013-03-23T12:15:43.957 回答
0

目前还没有提供水印密码框的工具包。但是,这可能会有所帮助:-

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

于 2013-03-24T03:51:28.027 回答
0

此外,请查看http://julmar.com/blog/mark/?p=300,了解 WinRT 的 Textbox 和 PasswordBox 实现。

于 2013-06-04T04:50:54.883 回答