improve:计时器

This commit is contained in:
2025-10-06 20:23:55 +08:00
parent 11da14aeab
commit ca124732fa
2 changed files with 15 additions and 4 deletions
@@ -28,7 +28,7 @@ namespace Ink_Canvas
this.Height = SystemParameters.PrimaryScreenHeight; this.Height = SystemParameters.PrimaryScreenHeight;
// 启动更新定时器 // 启动更新定时器
updateTimer = new System.Timers.Timer(100); // 100ms更新一次 updateTimer = new System.Timers.Timer(100);
updateTimer.Elapsed += UpdateTimer_Elapsed; updateTimer.Elapsed += UpdateTimer_Elapsed;
updateTimer.Start(); updateTimer.Start();
} }
@@ -105,6 +105,8 @@ namespace Ink_Canvas
// 恢复主窗口 // 恢复主窗口
if (parentWindow != null) if (parentWindow != null)
{ {
// 清除全屏模式标志
parentWindow.SetFullscreenMode(false);
parentWindow.Show(); parentWindow.Show();
parentWindow.Activate(); parentWindow.Activate();
parentWindow.WindowState = WindowState.Normal; parentWindow.WindowState = WindowState.Normal;
@@ -94,6 +94,7 @@ namespace Ink_Canvas
private Timer hideTimer; private Timer hideTimer;
private MinimizedTimerWindow minimizedWindow; private MinimizedTimerWindow minimizedWindow;
private DateTime lastActivityTime; private DateTime lastActivityTime;
private bool isFullscreenMode = false;
// 最近计时记录 // 最近计时记录
private string recentTimer1 = "--:--"; private string recentTimer1 = "--:--";
@@ -206,11 +207,11 @@ namespace Ink_Canvas
{ {
Application.Current.Dispatcher.Invoke(() => Application.Current.Dispatcher.Invoke(() =>
{ {
// 只有在计时器运行时才检查自动隐藏 // 只有在计时器运行时且不在全屏模式下才检查自动隐藏
if (isTimerRunning && !isPaused) if (isTimerRunning && !isPaused && !isFullscreenMode)
{ {
var timeSinceLastActivity = DateTime.Now - lastActivityTime; var timeSinceLastActivity = DateTime.Now - lastActivityTime;
if (timeSinceLastActivity.TotalSeconds >= 5) // 5秒无操作 if (timeSinceLastActivity.TotalSeconds >= 5)
{ {
ShowMinimizedWindow(); ShowMinimizedWindow();
} }
@@ -235,6 +236,11 @@ namespace Ink_Canvas
lastActivityTime = DateTime.Now; lastActivityTime = DateTime.Now;
} }
public void SetFullscreenMode(bool isFullscreen)
{
isFullscreenMode = isFullscreen;
}
public bool IsTimerRunning => isTimerRunning; public bool IsTimerRunning => isTimerRunning;
public TimeSpan? GetRemainingTime() public TimeSpan? GetRemainingTime()
@@ -1009,6 +1015,9 @@ namespace Ink_Canvas
private void ShowFullscreenTimer() private void ShowFullscreenTimer()
{ {
// 设置全屏模式标志
isFullscreenMode = true;
// 创建全屏计时器窗口 // 创建全屏计时器窗口
var fullscreenWindow = new FullscreenTimerWindow(this); var fullscreenWindow = new FullscreenTimerWindow(this);
fullscreenWindow.Show(); fullscreenWindow.Show();