WPF窗口长时间无人操作鼠标自动隐藏
2015-09-25 10:02
363 查看
原文:WPF窗口长时间无人操作鼠标自动隐藏在软件开发中有时会有等待一段时间无人操作后隐藏鼠标,可能原因大致如下:
1.为了安全性,特别是那些需要用到用户名和密码登录服务端的程序,常常考虑长期无人操作,程序自动跳转到用户登录界面;
2.软件为了更好的播放效果,需要隐藏鼠标。
这里写的是第二种情况,wpf做播放时,需要隐藏鼠标。
思路是:假如3s鼠标不动则隐藏,设计了计时器的间隔时间为1s,并添加鼠标没移动的计数器,计数器达到3才执行程序。实现是这样的:每隔1s检测鼠标是否移动,如果不移动则计数器加1,如果中途鼠标移动,则计数器清零,要达到计数器计数为3,则要3次鼠标检测中鼠标都不移动,这样从鼠标停止移动,到计数器达到3,刚好是3s,能够达到3s鼠标不动则隐藏程序执行;
一、封装好的监视鼠标移动的类文件:
View Code
另外如果有设计到鼠标焦点的情况,请参考WPF程序长时间无人操作
1.为了安全性,特别是那些需要用到用户名和密码登录服务端的程序,常常考虑长期无人操作,程序自动跳转到用户登录界面;
2.软件为了更好的播放效果,需要隐藏鼠标。
这里写的是第二种情况,wpf做播放时,需要隐藏鼠标。
思路是:假如3s鼠标不动则隐藏,设计了计时器的间隔时间为1s,并添加鼠标没移动的计数器,计数器达到3才执行程序。实现是这样的:每隔1s检测鼠标是否移动,如果不移动则计数器加1,如果中途鼠标移动,则计数器清零,要达到计数器计数为3,则要3次鼠标检测中鼠标都不移动,这样从鼠标停止移动,到计数器达到3,刚好是3s,能够达到3s鼠标不动则隐藏程序执行;
一、封装好的监视鼠标移动的类文件:
private DispatcherTimer Timer_MouseMove; private void Window_Loaded(object sender, RoutedEventArgs e) { // 设置鼠标隐藏、显示 this.Timer_MouseMove = new DispatcherTimer(); this.Timer_MouseMove.Tick +=new EventHandler(Timer_MouseMove_Tick); this.Timer_MouseMove.Interval = new TimeSpan(0, 0, 1); this.Timer_MouseMove.Start(); } private void Timer_MouseMove_Tick(object sender, EventArgs e) { try { if (!MouseMonitorHelper.HaveUsedTo()) { MouseMonitorHelper.CheckCount++; if (MouseMonitorHelper.CheckCount == 3) { MouseMonitorHelper.CheckCount = 0; // 关闭按钮隐藏、鼠标隐藏 this.cnsExist.Visibility = Visibility.Hidden; Mouse.OverrideCursor = Cursors.None; } } else MouseMonitorHelper.CheckCount = 0; } catch { throw new NotImplementedException(); } } private void DockPanel_MouseMove(object sender, MouseEventArgs e) { this.cnsExist.Visibility = Visibility.Visible; Mouse.OverrideCursor = Cursors.Arrow;
View Code
另外如果有设计到鼠标焦点的情况,请参考WPF程序长时间无人操作
相关文章推荐
- Linux中断(interrupt)子系统之三:中断流控处理层【转】
- jQuery hash
- php 以图搜图
- Datasnap http用户验证
- Android的NFC教程(一)
- Eclipse 打开出现Failed to create the java Virtual Machine解决
- 二进制中1的个数
- Sqoop中文手册
- SVN服务器搭建和使用
- Linux中断(interrupt)子系统之一:中断系统基本原理【转】
- Android解决java.lang.OutOfMemoryError: bitmap size exceeds VM budget(转)
- 回环网卡通信
- 马士兵_JAVA自学之路
- UIView的扩大,缩放,旋转,平移,反转等效果
- 黑马北京新闻项目连载(7)--->图片轮播
- HDU 5112 2014ICPC北京站现场赛 A Curious Matt
- quota磁盘配额
- 在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)
- Galaxy Note 5深度体验:多元化的办公和娱乐平台
- 多线程复习提纲