如何使用C# DispatcherTimer实现WPF 15分钟倒计时功能
你的代码逻辑本身没有问题,之所以只实现15秒倒计时,是因为你定义的time变量的计数单位为秒,初始赋值15就代表总倒计时时长为15秒。
解决方法
- 第一步:修改
time变量的初始值,15分钟对应900秒,把private int time = 15;改为private int time = 15 * 60;即可实现15分钟倒计时的基础逻辑。 - 第二步(可选优化):原有的时间格式化逻辑会导致个位数的秒数显示缺零(比如剩余5秒会显示为0:5),可以将格式化代码调整为补零格式,显示效果更规范。
修改后的完整代码如下:
public partial class MainWindow : Window { // 15分钟换算为900秒作为初始值 private int time = 15 * 60; private DispatcherTimer Timer; public MainWindow() { InitializeComponent(); Timer = new DispatcherTimer(); Timer.Interval = new TimeSpan(0,0,1); Timer.Tick += Timer_Tick; Timer.Start(); } void Timer_Tick(object sender, EventArgs e) { if (time > 0) { time--; // D2表示数字按两位格式化,不足补前导0 TBCountDown.Text = string.Format("{0}:{1:D2}", time / 60, time % 60); } else { Timer.Stop(); } } }
内容的提问来源于stack exchange,提问作者mully
相关产品推荐
相关产品推荐

