单击时,WPF文本框/密码框文本消失

时间:2016-02-08 13:07:45

标签: wpf login textbox passwordbox

我正在为wpf应用程序创建登录屏幕。我想要2个文本框,一个用于用户名和密码。

对于用户名,我使用了一个文本框并添加了文本(“用户名”),当用户点击它以输入用户名时,该文本消失。我用下面的代码完成了它。

我似乎无法复制这个密码。我不相信我能够使用文本框,因为我无法将用户输入伪装成*或者其他什么,我无法找到一种方法将'密码'硬编码到框中以使其消失当用户点击时。

我该怎么做?我知道它的可能性,因为大量的网站都有这个功能,但我在google搜索很长一段时间后无法弄明白!

我应该强调,我对编程是全新的,所以非常感谢那些针对一个完整新手的答案!

由于

xaml:GotFocus =“UserNameTextbox_OnGotFocus”Foreground =“#FFA19DA1”/>

private void UserNameTextbox_OnGotFocus(object sender, RoutedEventArgs e)
    {
        UserNameTextbox.Text = "";
    }

Username example here

2 个答案:

答案 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>