问题描述
我正在尝试另一种密码绑定方式(我知道有不同的方式)
用户将在文本框内书写,其前景将是透明的
文本块将与文本框文本的长度绑定,并根据长度显示“*”。
当我按住某个“眼睛图标”时,文本块将不可见,文本框的前景将为黑色
问题是当我把它们放在一起时,方块挡住了盒子,我无法在里面写字。
也许这只是我没有找到的属性,“优先级”什么的
想要我该怎么做的建议,谢谢:)
解决方法
问题是当我把它们放在一起时,方块挡住了盒子,我无法在里面写字。 也许只是我没有找到的属性,“优先级”什么的
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 控件
,