improve:计时器
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user