You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF中如何检测鼠标按键释放?实现密码框显隐功能

实现按住眼睛按钮显示密码、松开隐藏的功能

嘿,这个需求很常见,我来给你一步步讲清楚怎么实现!

你现在用的Click事件其实不太适合这个场景——因为Click是用户按下再松开按钮才会触发的,而你需要的是按住按钮时就显示密码,松开(或者鼠标离开按钮)就隐藏。

在WPF里,我们可以用按钮的MouseDown、MouseUp和MouseLeave这三个事件来搞定:

第一步:给眼睛按钮绑定事件

先在你的XAML里给眼睛按钮加上这三个事件:

<Button x:Name="eyeButton" 
        MouseDown="EyeButton_MouseDown" 
        MouseUp="EyeButton_MouseUp" 
        MouseLeave="EyeButton_MouseLeave">
    <!-- 这里放你的眼睛图标或者文字 -->
</Button>
<!-- 假设你的密码框是这个 -->
<PasswordBox x:Name="passwordBox" />

第二步:实现事件处理函数

然后在后台C#代码里写这三个事件的逻辑:

// 鼠标按下按钮时:显示密码
private void EyeButton_MouseDown(object sender, MouseButtonEventArgs e)
{
    // 把密码框的隐藏字符设为空,就能显示明文了
    passwordBox.PasswordChar = '\0';
}

// 鼠标松开按钮时:隐藏密码
private void EyeButton_MouseUp(object sender, MouseButtonEventArgs e)
{
    // 恢复默认的密码隐藏字符(比如●,你也可以改成别的)
    passwordBox.PasswordChar = '●';
}

// 鼠标离开按钮时:也要隐藏密码(防止用户按住按钮移出控件后没松开)
private void EyeButton_MouseLeave(object sender, MouseEventArgs e)
{
    passwordBox.PasswordChar = '●';
}

为什么要加MouseLeave?

这是个很重要的细节:如果用户按住眼睛按钮,然后把鼠标移到按钮外面再松开,这时候MouseUp事件不会触发在按钮上,密码就会一直显示着。加了MouseLeave事件,就能在鼠标离开按钮时自动隐藏密码,避免这个问题。

这样你就能完美实现“按住显示、松开隐藏”的效果啦!

内容的提问来源于stack exchange,提问作者user9698300

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:20:04