我有一个申请。如果应用程序在一段时间内没有被使用一段时间,它应该隐藏。当应用程序被隐藏并且我们将鼠标悬停在图标上时,它应该被恢复。
我该怎么做?提前谢谢。
答案 0 :(得分:2)
您必须在应用程序中定义一个计时器,该计时器将计算鼠标不在表单/窗口上的时间。然后隐藏你的申请。
下载WPF NotifyIcon 并处理MouseOver事件,它将显示Form / Window
修改强>
如果您不需要将应用程序最小化到托盘并隐藏窗口,将其保留在桌面上 - >使用相同的算法,但不要隐藏窗口,只需将透明度设置为0%或10%。鼠标过度时将透明度设置为100%。
答案 1 :(得分:1)
像JesseJames所说,使用计时器来测量应用程序的非活动时间并在一段时间后隐藏它。当鼠标悬停在NotifyIcon上时重新激活它。以下是完成此任务的示例 WindowsForms 解决方案:
private Timer _timer;
private int _ticks;
public Form1()
{
_timer = new Timer { Interval = 1000, Enabled = true };
_timer.Tick += TimerTick;
Activated += Form1_Activated;
MouseMove += Form1_MouseMove;
//notifyIcon1 is an icon set through the designer
notifyIcon1.MouseMove += NotifyIcon1MouseMove;
}
protected void TimerTick(object sender, EventArgs e)
{
//After 5 seconds the app will be hidden
if (_ticks++ == 5)
{
WindowState = FormWindowState.Minimized;
Hide();
_timer.Stop();
_ticks = 0;
}
}
protected void NotifyIcon1MouseMove(object sender, MouseEventArgs e)
{
WindowState = FormWindowState.Normal;
Show();
_ticks = 0;
_timer.Start();
}
protected void Form1_MouseMove(object sender, MouseEventArgs e)
{
_ticks = 0;
}
也许可能存在一个更清洁的解决方案,我不知道,但它会让你在路上。 WPF的原理相同,只是代码略有不同。希望这有帮助!
答案 2 :(得分:0)