是否可以在WinRt中获取水印密码箱?获得带有水印的文本框是没有问题的,但我不知道一个工具包,我可以在其中获得带有水印的密码框。
我如何为自己实施一个?
答案 0 :(得分:4)
他们也有
您可以自己实施自己的控制:
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实现。