WPF通知设置

s6fujrry  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(98)

我正在做一个WPF项目,我想为应用程序创建一个通知机制。具体地,用户可以转到“设置”选项卡,更改通知的设置(例如,每天上午7点或每周每周四下午2点等)。设置完成后,他们将看到桌面屏幕右下角弹出一个吐司通知。我知道我需要一个API来实现这一点。当通知设置时间到来并显示通知时,调用该API。我一直在做关于System.Threading.TimerQuartz.NET的研究,但我没有找到任何与WPF通知相关的东西。有谁知道任何解释如何实现计时器和通知的来源,我可以参考?我会很感激你的帮助。- 谢谢-谢谢
修改问题:为了澄清我的问题,我想知道的是如何开发逻辑,以便在特定的日期/时间(取决于用户所做的设置)进行API调用以获取通知数据,然后将结果显示为吐司。因此,主要的问题是如何定期调用API,即使应用程序没有打开和运行。

wf82jlnq

wf82jlnq1#

您可以在项目中包含System.Windows.Forms类并使用NotifyIcon。下面我给大家准备了一个小例子。

var notifyIcon = new NotifyIcon();
notifyIcon.Icon = new Icon("Icon.ico");
notifyIcon.Visible = true;
notifyIcon.ShowBalloonTip(5000, "Title", "Message", ToolTipIcon.Info);

字符串
如果你想在应用程序中发出通知,而不是系统通知,我可以推荐Notification.Wpf
通知的管理是另一回事。这取决于您的需求和当前系统。App会一直打开吗?或者它将管理您在应用程序安装期间编写的服务?它可以根据很多问题而变化。

ajsxfq5m

ajsxfq5m2#

您可以使用操作系统的标准吐司通知(使用CommunityToolkit.WinUI.Notifications)轻松完成此操作。
假设您想在今天晚上21:00发送一个吐司通知。

var time = new DateTimeOffset(DateTime.Today.AddHours(21));

new ToastContentBuilder()
    .AddText("TIME REMINDER")
    .AddText("This is a scheduled message.")
    .Schedule(time);

字符串
就是这样。参见Schedule a toast notification

相关问题