输入密码的实现:如何点击位于TextBlock下的TextBox?

问题描述

我正在尝试另一种密码绑定方式(我知道有不同的方式)

我在同一个位置放了一个文本块和一个文本框

用户将在文本框内书写,其前景将是透明的

文本块将与文本框文本的长度绑定,并根据长度显示“*”。

当我按住某个“眼睛图标”时,文本块将不可见,文本框的前景将为黑色

问题是当我把它们放在一起时,方块挡住了盒子,我无法在里面写字。

也许这只是我没有找到的属性,“优先级”什么的

想要我该怎么做的建议,谢谢:)

解决方法

问题是当我把它们放在一起时,方块挡住了盒子,我无法在里面写字。 也许只是我没有找到的属性,“优先级”什么的

IsHitTestVisible 属性。

示例:

    <StackPanel>
        <TextBox Text="1234"/>
        <Grid>
            <TextBox x:Name="textBox" Text="1234"/>
            <TextBlock Text="***********" Background="Wheat"
                       IsHitTestVisible="False"/>
        </Grid>
        <TextBlock Text="{Binding Text,ElementName=textBox}"/>
    </StackPanel>

但是!!!
在我看来,使 TextBox 透明更容易。
在这样的实现中,您可以看到输入光标在字段中的位置。

示例:

    <StackPanel>
        <TextBox Text="1234"/>
        <Grid>
            <TextBlock Text="***********" Background="Wheat"/>
            <TextBox x:Name="textBox" Text="1234"
                     Background="Transparent"
                     Foreground="Transparent"
                     BorderThickness="0"/>
        </Grid>
        <TextBlock Text="{Binding Text,ElementName=textBox}"/>
    </StackPanel>
,

您可以参考 https://gitee.com/cook-csharp/CookPopularControl 中的 PasswordBox 控件

,

只有您应该更改控件​​代码位置! enter image description here

改变
enter image description here

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...