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;
// 启动更新定时器
updateTimer = new System.Timers.Timer(100); // 100ms更新一次
updateTimer = new System.Timers.Timer(100);
updateTimer.Elapsed += UpdateTimer_Elapsed;
updateTimer.Start();
}
@@ -105,6 +105,8 @@ namespace Ink_Canvas
// 恢复主窗口
if (parentWindow != null)
{
// 清除全屏模式标志
parentWindow.SetFullscreenMode(false);
parentWindow.Show();
parentWindow.Activate();
parentWindow.WindowState = WindowState.Normal;
@@ -94,6 +94,7 @@ namespace Ink_Canvas
private Timer hideTimer;
private MinimizedTimerWindow minimizedWindow;
private DateTime lastActivityTime;
private bool isFullscreenMode = false;
// 最近计时记录
private string recentTimer1 = "--:--";
@@ -206,11 +207,11 @@ namespace Ink_Canvas
{
Application.Current.Dispatcher.Invoke(() =>
{
// 只有在计时器运行时才检查自动隐藏
if (isTimerRunning && !isPaused)
// 只有在计时器运行时且不在全屏模式下才检查自动隐藏
if (isTimerRunning && !isPaused && !isFullscreenMode)
{
var timeSinceLastActivity = DateTime.Now - lastActivityTime;
if (timeSinceLastActivity.TotalSeconds >= 5) // 5秒无操作
if (timeSinceLastActivity.TotalSeconds >= 5)
{
ShowMinimizedWindow();
}
@@ -235,6 +236,11 @@ namespace Ink_Canvas
lastActivityTime = DateTime.Now;
}
public void SetFullscreenMode(bool isFullscreen)
{
isFullscreenMode = isFullscreen;
}
public bool IsTimerRunning => isTimerRunning;
public TimeSpan? GetRemainingTime()
@@ -1009,6 +1015,9 @@ namespace Ink_Canvas
private void ShowFullscreenTimer()
{
// 设置全屏模式标志
isFullscreenMode = true;
// 创建全屏计时器窗口
var fullscreenWindow = new FullscreenTimerWindow(this);
fullscreenWindow.Show();