improve:计时器

This commit is contained in:
2026-03-14 16:45:19 +08:00
parent dfd327d7fc
commit 082c9ed005
+35 -32
View File
@@ -205,24 +205,14 @@ namespace Ink_Canvas.Windows
} }
else if (leftTimeSpan.TotalSeconds <= 0) else if (leftTimeSpan.TotalSeconds <= 0)
{ {
SetDigitDisplay("Digit1Display", 0);
SetDigitDisplay("Digit2Display", 0);
SetDigitDisplay("Digit3Display", 0);
SetDigitDisplay("Digit4Display", 0);
SetDigitDisplay("Digit5Display", 0);
SetDigitDisplay("Digit6Display", 0);
SetColonDisplay(false);
timer.Stop(); timer.Stop();
isTimerRunning = false; isTimerRunning = false;
StartPauseIcon.Data = Geometry.Parse(PlayIconData); isPaused = false;
PlayTimerSound(); isOvertimeMode = false;
// 禁用全屏按钮 ApplyResetStateAfterStop();
if (FullscreenBtn != null)
{ PlayTimerSound();
FullscreenBtn.IsEnabled = false;
}
TimerCompleted?.Invoke(this, EventArgs.Empty); TimerCompleted?.Invoke(this, EventArgs.Empty);
HandleTimerCompletion(); HandleTimerCompletion();
@@ -264,6 +254,9 @@ namespace Ink_Canvas.Windows
int hour = 0; int hour = 0;
int minute = 5; int minute = 5;
int second = 0; int second = 0;
int cachedStartHour = 0;
int cachedStartMinute = 5;
int cachedStartSecond = 0;
DateTime startTime = DateTime.Now; DateTime startTime = DateTime.Now;
DateTime pauseTime = DateTime.Now; DateTime pauseTime = DateTime.Now;
@@ -857,6 +850,10 @@ namespace Ink_Canvas.Windows
UpdateDigitDisplays(); UpdateDigitDisplays();
} }
cachedStartHour = hour;
cachedStartMinute = minute;
cachedStartSecond = second;
startTime = DateTime.Now; startTime = DateTime.Now;
StartPauseIcon.Data = Geometry.Parse(PauseIconData); StartPauseIcon.Data = Geometry.Parse(PauseIconData);
isPaused = false; isPaused = false;
@@ -879,6 +876,25 @@ namespace Ink_Canvas.Windows
} }
} }
private void ApplyResetStateAfterStop()
{
UpdateDigitDisplays();
SetColonDisplay(false);
if (StartPauseIcon != null)
{
StartPauseIcon.Data = Geometry.Parse(PlayIconData);
}
hasPlayedProgressiveReminder = false;
// 禁用全屏按钮
if (FullscreenBtn != null)
{
FullscreenBtn.IsEnabled = false;
}
}
private void Reset_Click(object sender, RoutedEventArgs e) private void Reset_Click(object sender, RoutedEventArgs e)
{ {
UpdateActivityTime(); UpdateActivityTime();
@@ -896,22 +912,9 @@ namespace Ink_Canvas.Windows
} }
} }
UpdateDigitDisplays();
SetColonDisplay(false);
if (StartPauseIcon != null)
{
StartPauseIcon.Data = Geometry.Parse(PlayIconData);
}
isOvertimeMode = false; isOvertimeMode = false;
hasPlayedProgressiveReminder = false;
// 禁用全屏按钮 ApplyResetStateAfterStop();
if (FullscreenBtn != null)
{
FullscreenBtn.IsEnabled = false;
}
} }
private void PlayTimerSound() private void PlayTimerSound()
@@ -1593,9 +1596,9 @@ namespace Ink_Canvas.Windows
} }
// 重置时间到默认值 // 重置时间到默认值
hour = 0; hour = cachedStartHour;
minute = 5; minute = cachedStartMinute;
second = 0; second = cachedStartSecond;
// 更新显示 // 更新显示
UpdateDigitDisplays(); UpdateDigitDisplays();