gpt4 book ai didi

C#/WPF 取消密码框内的密码掩码

转载 作者:行者123 更新时间:2023-12-02 09:23:17 28 4
gpt4 key购买 nike

每当我单击复选框时,如何解密和隐藏密码框中的密码?我正在使用 C# WPF 模板。

这是我的 .XAML 代码:

<PasswordBox x:Name="passwordBox_password" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" Margin="5" Height="25" />
<CheckBox x:Name="checkBox_showPassword" Grid.Row="3" Grid.Column="1" Margin="5,0,5,5" Content="show password" Checked="checkBox_showPassword_Checked" Unchecked="checkBox_showPassword_Unchecked" />

这是我的 .CS 代码:

private void checkBox_showPassword_Checked(object sender, RoutedEventArgs e)
{
// what to do here ?
}

private void checkBox_showPassword_Unchecked(object sender, RoutedEventArgs e)
{
// what to do here ?
}

或者在 WPF 中还有其他方法吗?

最佳答案

做到这一点非常简单。首先,您应该在密码框中添加值 PasswordChar:

<PasswordBox Name="PasswordHidden" PasswordChar="•"/>

接下来,您应该在PasswordBox 标记下添加一个文本框,并将Visibility 值设置为隐藏:

<TextBox Name="PasswordUnmask" Visibility="Hidden"/>

以及显示/隐藏密码的触发器,例如简单的文本或按钮。就我而言,我使用的是简单的文本。

<TextBlock Name="ShowPassword"/>

接下来,您需要在触发元素中添加 3 个不同的事件,例如(这对 TextBlock 或 Image 有效,如果您想使用 Button,则应该选择其他事件):

<TextBlock x:Name="ShowPassword" Text="SHOW" PreviewMouseDown="ShowPassword_PreviewMouseDown" PreviewMouseUp="ShowPassword_PreviewMouseUp" MouseLeave="ShowPassword_MouseLeave"/>

事件是 PreviewMouseDown PreviewMouseUpMouseLeave,但您可以根据情况选择适当的事件。

现在您需要在代码中编写函数:

private void ShowPassword_PreviewMouseDown(object sender, MouseButtonEventArgs e) => ShowPasswordFunction();
private void ShowPassword_PreviewMouseUp(object sender, MouseButtonEventArgs e) => HidePasswordFunction();
private void ShowPassword_MouseLeave(object sender, MouseEventArgs e) => HidePasswordFunction();

private void ShowPasswordFunction()
{
ShowPassword.Text = "HIDE";
PasswordUnmask.Visibility = Visibility.Visible;
PasswordHidden.Visibility = Visibility.Hidden;
PasswordUnmask.Text = PasswordHidden.Password;
}

private void HidePasswordFunction()
{
ShowPassword.Text = "SHOW";
PasswordUnmask.Visibility = Visibility.Hidden;
PasswordHidden.Visibility = Visibility.Visible;
}

关于C#/WPF 取消密码框内的密码掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31040510/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com