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

Implementation for entering a password: How to click on the TextBox located under the TextBlock?

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

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

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

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

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

问题是当我把它们放在一起时,积木挡住了盒子,我无法在里面写东西。

也许这只是一个 属性 我没有找到,“优先级”之类的东西

想知道我该怎么做,谢谢:)

只有您应该更改控件​​代码位置!

改变

The problem is that when I put them both together, the block blocks the box and I can't write in it. Maybe it's just a property I didn't find, "priority" or something

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>