WPF 闹钟定时弹出提醒窗口

本文介绍了一个使用WPF和C#开发的定时提醒窗口应用,旨在解决因长时间工作导致的身体不适问题。用户可以选择定时模式(整点、半点或自定义),提醒模式(单次、五次或自定义次数)以及提醒显示内容。通过System.Timers.Timer实现定时功能,当达到设定时间时,窗口将弹出提醒用户休息。尽管存在一些编程上的不足,但该应用已能完成基本功能,提供了一个实用的定时提醒解决方案。
摘要由CSDN通过智能技术生成

WPF 闹钟定时弹出提醒窗口

选择定时模式,选择提醒模式,输入你想在提醒窗口上显示的内容。点击START按钮即可开始定时。当到达指定定时时间,就会弹出提醒窗口。
在这里插入图片描述

背景

现在人们的工作压力越来越大,很多人为了尽快完成工作,经常一坐到座位上就进入忘我状态,直到膀胱提醒他该暂停一下工作,才离开座位。长期的久坐已经给这群人带来了很多身体上的不适,甚至疾病。长期久坐会导致血液循环不良,消化减退,肩周炎劲椎病,脱发,甚至提前进入更年期。博主最近就发现颈椎不舒服,浑身肌肉酸痛,甚至发际线都在往上移。这跟我每天的工作状态密切相关,由于博主过分热爱工作,一旦进入工作状态就废寝忘食,经常坐下来就是半天。所以我开发了这个小程序,让它提醒我要定时起来活动一下。

功能介绍

  1. 定时模式: 研究标明,每过一个小时起来活动一下身体是最好的时间间隔。定时模式的前两个选项分别是:整点:即每到整点提醒。半点:即每到整半点提醒。 如果这两种模式不适合你,还有第三个模式,自定义模式:即由你输入任意时间,单位/分钟
    在这里插入图片描述
  2. 提醒模式: 提醒模式也分为三种,单次、五次、自定义时间,单位/分钟(我称之为狂躁模式)
    次数的意思为:提醒窗口弹出的次数,只有你点击关闭窗口后才会再次弹出。
    在这里插入图片描述
  3. 显示内容: 即提醒窗口上显示的内容。输入显示内容后,点击START按钮即可开始定时。
    在这里插入图片描述

思路: 利用System.Timers.Timer 产生1ms定时,在每次定时事件Timer_Tick内对当前时间判断,如果到达定时时间就弹出Form窗体。
总结:
1.还没有领悟面对对象编程的思维。定义了很多公共字段,标志位等。但是功能上是可以的,也做了挺长时间,从0开始,不会就百度,先不修改了,交作业吧。
2.对数据绑定还是不懂, Binding = " ",path = " "。有时候要Path,有时候不用。对Combobox的数据选择也还是很迷惑。虽然网上有很多专门的文章,但是看了当时感觉明白了,到用的时候就不会了。
3.这玩意儿自学真的太难了(本身不是这个专业),一点专业基础都没有,全新的领域,真难啊。另外英语好真的很有帮助,很多函数,类,命名空间都是按照功能来命名的。不用每遇到一个都去百度,或者上MSDN。

致谢 感谢网络上各位大佬的文章,为我及时解惑答疑。包括但不局限于以下的每篇文章。
在这里插入图片描述
下载
安装包及源代码链接:https://pan.baidu.com/s/1NZQJ0z9FkpwJGVG9ywasIA 密码:ahpg
演示 视频链接: https://v.youku.com/v_show/id_XNDIzMDYwNjQ4MA==.html?spm=a2h0k.11417342.soresults.dtitle

Xaml.CS部分代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;
using System.Runtime.InteropServices;
using System.Windows.Media.Animation;

namespace AlarmClock
{
   
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
   
        public static uint gTimeTicks = 0;
        public int FormShowTimes = 0;
        public bool ItsTimeToShowForm = false;
        public bool LastItsTimeToShowForm = false;
        public bool IWantStartAlarmClock = false;
        public StartTiming _startTiming;
        public DateTime TheAlarmTime;
        public DateTime RestTime;
        public TimeMode _timeModeSec;
        public WarnMode _warnMode;
        public Form _warnForm;
        public Form _warnFormWarnInput;
        public Form _warnFormTimeInput;
        public System.Windows.Forms.TextBox _textBoxShowContent;
        public System.Windows.Forms.TextBox _textBoxWarn;
        public System.Windows.Forms.TextBox _textBoxTime;
        public Graphics _clockGraphics;
        public Time2Angle _tm2angle;
        public NotifyIcon notifyIcon;
        public MainWindow()
        {
   
            InitializeComponent();
            WarnModeComboBox.ItemsSource = WarnModeList;
            TimeModeComboBox.ItemsSource = TimeModeList;
            InitTimer();
            _startTiming = new StartTiming();
            _tm2angle = new Time2Angle();
            CanvasTime.DataContext = _tm2angle;
            DrawScale();
            Window_MainWindow.Closing += Window_MainWindow_Closing;
        }

        private void Window_MainWindow_Closing(object sender, CancelEventArgs e)
        {
   
            //throw new NotImplementedExcepti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值