7

C# WPF上位机开发(倒计时软件)

 1 year ago
source link: https://blog.csdn.net/feixiaoxing/article/details/134683255
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

C# WPF上位机开发(倒计时软件)

嵌入式-老费 已于 2023-11-29 14:33:29 修改
阅读量1.2k
点赞数 22

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        生活当中,我们经常会遇到倒计时的场景,比如体育运动的时候、考试的时候等等。正好最近我们学习了c# wpf开发,完全可以用它来做一个简单的倒计时软件。倒计时的原理其实不复杂,就是设定一个起始时间,每到达一个周期之后,就开始递减,直到递减为0,倒计时结束。

        实现上面呢,我们可以分成两部分来完成。一部分是界面的设计,另外一部分就是代码的编写。关于界面的部分,比较简单一点的做法就是AA:BB五个字符的形式。毕竟目前来说,我们学到的布局方法还不是很多,AA:BB的方法虽然简约了一点,但是也可以帮助我们来解决问题。

        代码部分,最终要的就是定时器的创建和执行。首先,我们需要创建一个定时器,这个定时器肯定有一些属性需要配置。接着,配置完定时器之后,它肯定还有一个周期回调函数,在这个回调函数当中,我们添加上必要的代码,周期性修改AA:BB的内容,这样就可以完成倒计时的工作。最后,等AA:BB恢复为0的时候,还需要关闭定时器。当然做的复杂一点的话,还可以通过反复设置定时器的方法来使得软件功能更加地完善。

1、构建界面

        c# wpf最大的一个好处就是可以一边写脚本,一边查看界面的效果。本身界面的开发工作也是可以和业务代码分开来的。所以,按照刚才设计的AA:BB的形式,首先设计和调整好界面。不出意外,界面部分的代码应该是这样的,



newCodeMoreWhite.png

2、界面的微调

        有了基本的布局之后,一般我们还会根据看到的界面效果,做一些微调,直到它符合我们的要求为止。因为所有的微调操作都是可以实时看到反馈结果的,所以如果项目本身比较简单的话,这个微调的时间并不需要花费太久。

5b8f1fa5aeb147879835a49412298a8e.png

3、编写代码

        前面我们讨论过,代码部分修改.xaml.cs即可,主要的内容就是添加定时器,实现定时器回调函数,更新label内容。为了方便大家理解,这里给出完整的代码,



newCodeMoreWhite.png

        代码当中主要有三个函数。函数MainWindow是构造函数,除了系统自带的内容之外,我们还创建了一个定时器,它的名字叫dispatchTimer。这个定时器的回调函数是dispatchTimer_Tick,执行周期是每1s被调用一次,并且在创建完毕之后,立即执行。

        第二个函数是dispatchTimer_Tick,这就是刚刚说的定时器回调函数,每1s执行一次。每一次执行的时候,我们都需要num递减1。这个num就是总的计数时间,以秒为单位。假设我们设置的num是1200,那就代表1200s,时间长度为20min。如果时间为0之后,那么可以停止定时器的执行了。

        第三个函数是display_number,这个函数在前面两个函数当中都被调用了。它的功能比较纯粹,主要就是显示AA:BB的内容,其中AA代表分钟,BB代表秒钟,怎么把num转化成AA:BB,主要就是采取一些除法和取余的手段来实现的,大家可以参考对应的代码思考一下就能明白里面的远原理了。

4、调试和测试

        调试和测试就比较简单了。测试主要有两点,第一,验证软件启动之后,是否真的发生了数据递减的动作。第二,时间递减为0之后,是不是定时器就停止了操作。如果这两点都已经ok了,那说明我们编写的软件就是成功的。不然就需要回去检查一下原因,看看问题发生在了什么地方。

b37cb621c4d949db92eaba5149362a9f.png

        如果需要把小时也算在里面,有兴趣的同学可以试试这个逻辑,


Recommend

  • 6

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         在软件开发中,有一种很重要的控件,那就是表格。大家可以想象下,办公软件里面是不是就有一个专门做表格的软件,那就是excel。对于上位机来说也是一样,很多数...

  • 7

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         前面我们写过一个绘图软件,不过那个比较简单,主要就是用鼠标模拟pen进行绘图。实际应用中,另外一种使用比较多的场景,就是绘制直线、长方形和圆形。不管是流...

  • 8

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         图像处理是工业生产重要的环节。不管是定位、测量、检测还是识别,图像处理在工业生产中扮演重要的角色。而c#由于自身

  • 8

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         前面我们写了倒计时软件,但是不知道大家有没有发现,这个软件起始有一个缺点,那就是倒计时的起始时间都是硬编码生成的。所以每当我们需要重新设置起始时间,就...

  • 5

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         本身c# wpf可以看成是生产力工具,它的意义在于可以快速根据业务...

  • 4

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         在实际应用中,有一种情况就是,我们需要经常对数据进行图形化显示,这样会比较直观一点。比如经济统计里面的同比、环比显示,pid里面的调参结果显示,传感器数...

  • 5

    C# WPF上位机开发(乘法计算小软件)

  • 7

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         每到年末或者是尾牙的时候,很多公司都会办一些年终的清楚活动,感谢员工过去一年辛苦的付出。这个时候,作为年会的重头戏,那就是抽奖环节了。抽奖一般来说,有...

  • 5

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         对于上位机而言,窗口布局有很多种形式,单页面、多页面等等。不过,还有一种分类的方法,大家往往会忽视,那就是针对不同使用者,上位机中界面的开发也要有所区...

  • 4

    C# WPF上位机开发(软件的发布和部署)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK