Ben*_*ino 5 c# passwords wpf checkbox passwordbox
每当我单击复选框时,如何取消屏蔽和屏蔽密码框中的密码?我正在使用 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" />
Run Code Online (Sandbox Code Playgroud)
这是我的 .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 ?
}
Run Code Online (Sandbox Code Playgroud)
或者在 WPF 中还有另一种方法吗?
做到这一点非常简单。\n首先您应该PasswordChar在密码框中添加值:
<PasswordBox Name="PasswordHidden" PasswordChar="\xe2\x80\xa2"/>\nRun Code Online (Sandbox Code Playgroud)\n\n接下来,在密码框标签下,您应该添加一个文本框,并将Visibility值设置为隐藏:
<TextBox Name="PasswordUnmask" Visibility="Hidden"/>\nRun Code Online (Sandbox Code Playgroud)\n\n以及显示/隐藏密码的触发器,例如简单的文本或按钮。就我而言,我使用的是简单的文本。
\n\n<TextBlock Name="ShowPassword"/>\nRun Code Online (Sandbox Code Playgroud)\n\n接下来,您需要在触发元素中添加 3 个不同的事件,例如(这对 TextBlock 或 Image 有效,如果您想使用 Button,则应该选择其他事件):
\n\n<TextBlock x:Name="ShowPassword" Text="SHOW" PreviewMouseDown="ShowPassword_PreviewMouseDown" PreviewMouseUp="ShowPassword_PreviewMouseUp" MouseLeave="ShowPassword_MouseLeave"/>\nRun Code Online (Sandbox Code Playgroud)\n\n这些事件是PreviewMouseDown PreviewMouseUp,MouseLeave但您可以根据您的情况选择适当的事件。
现在,您需要在代码中编写函数:
\n\nprivate void ShowPassword_PreviewMouseDown(object sender, MouseButtonEventArgs e) => ShowPasswordFunction();\nprivate void ShowPassword_PreviewMouseUp(object sender, MouseButtonEventArgs e) => HidePasswordFunction();\nprivate void ShowPassword_MouseLeave(object sender, MouseEventArgs e) => HidePasswordFunction();\n\nprivate void ShowPasswordFunction()\n{\n ShowPassword.Text = "HIDE";\n PasswordUnmask.Visibility = Visibility.Visible;\n PasswordHidden.Visibility = Visibility.Hidden;\n PasswordUnmask.Text = PasswordHidden.Password;\n}\n\nprivate void HidePasswordFunction()\n{\n ShowPassword.Text = "SHOW";\n PasswordUnmask.Visibility = Visibility.Hidden;\n PasswordHidden.Visibility = Visibility.Visible;\n}\nRun Code Online (Sandbox Code Playgroud)\n
以下链接将带您找到您正在寻找的答案,我的好先生。Lamas 先生在回答操作方法方面做得很好,所以我宁愿将您重定向到答案:)