【WinUI 3】用H.NotifyIcon显示系统任务栏(托盘)图标,实现程序后台运行

前言&问题背景

Windows平台上很多需要持续后台运行的程序,都有显示任务栏图标的需求,主要来显示状态信息、提供功能菜单栏。但UWP或Windows App SDK并没有提供对应的API,相反可能是在有意的抑制此项功能,我有理由怀疑是微软的战略布局。

但很显然,这项功能目前并不能有其它完美的替代解决方案,所以需要借助其它手段调用Win32 API实现。确实如此,GitHub中H.NotifyIcon库就帮助我们在WPF和WinUI平台上实现了。我们只需使用其NuGet包即可显示自己的任务栏图标。

但请注意,UWP程序强调生命周期管理,在后台期间会自动挂起。在官方的文档中,UWP确实有“在后台无限期运行”的解决方案,但一经使用则不能发布到Microsoft Store。为了响应其设计理念、也因为作者确实此方面涉足不深,本篇文章不探讨UWP平台的任务栏图标功能或后台运行功能。

解决方案

在NuGet源中,找到H.NotifyIcon包,根据你的需要选择H.NotifyIcon.WinUIH.NotifyIcon.Uno等包并安装。
注意,根据项目实例和自述文件,可以有多种声明与使用方法

  1. 直接全部在MainWindow内声明
<Window 
	...
	xmlns:tb="using:H.NotifyIcon"
	>
	<Grid>
		<Grid.Resources>
	        <MenuFlyout x:Key="TrayContextFlyout">
	            <MenuFlyoutItem Command="{StaticResource XamlUICommand类指令}" />
	            <MenuFlyoutSeparator />
	            <MenuFlyoutItem Command=
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值