我正在为wpf应用程序创建登录屏幕。我想要2个文本框,一个用于用户名和密码。
对于用户名,我使用了一个文本框并添加了文本(“用户名”),当用户点击它以输入用户名时,该文本消失。我用下面的代码完成了它。
我似乎无法复制这个密码。我不相信我能够使用文本框,因为我无法将用户输入伪装成*或者其他什么,我无法找到一种方法将'密码'硬编码到框中以使其消失当用户点击时。
我该怎么做?我知道它的可能性,因为大量的网站都有这个功能,但我在google搜索很长一段时间后无法弄明白!
我应该强调,我对编程是全新的,所以非常感谢那些针对一个完整新手的答案!
由于
xaml:GotFocus =“UserNameTextbox_OnGotFocus”Foreground =“#FFA19DA1”/>
private void UserNameTextbox_OnGotFocus(object sender, RoutedEventArgs e)
{
UserNameTextbox.Text = "";
}
答案 0 :(得分:0)
看起来您需要稍微自定义密码框。实现它的一种方法是使用密码框和文本块创建UserControl。在GotFocus for password框中,您只需将textblock的可见性设置为Collapsed。并且不要伪造为文本块设置HitTestVisible = false。
答案 1 :(得分:0)
尝试这种技巧:
XAML:
<li><a href="<?php echo $return; ?>"><?php echo $text_return; ?></a></li>
代码背后:
<Window x:Class="WpfApplication16.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication16"
mc:Ignorable="d"
Title="MainWindow" Height="100" Width="342.111" Background="DarkBlue">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="User Name:" HorizontalAlignment="Right" Foreground="White" />
<TextBox Name="txtUserName" Grid.Column="1" TextChanged="txtUserName_TextChanged" />
<TextBlock Name="tbUsername" Text="User Name" Foreground="Gray" IsHitTestVisible="False" Margin="4,0" VerticalAlignment="Center" Grid.Column="1" />
<TextBlock Grid.Row="1" Text="Password:" Foreground="White" HorizontalAlignment="Right" />
<PasswordBox Name="pwbPassword" Grid.Row="1" Grid.Column="1" PasswordChanged="pwbPassword_PasswordChanged" />
<TextBlock Name="tbPassword" Grid.Row="1" Grid.Column="1" Foreground="Gray" Margin="4,0" VerticalAlignment="Center" Text="Password" IsHitTestVisible="False" />
</Grid>
</Window>