WPF应用最小化到系统托盘

前言

在现代桌面应用开发中,系统托盘(System Tray)功能已经成为用户体验的重要组成部分。特别是对于需要长时间运行的应用程序,如即时通讯工具、音乐播放器、系统监控工具等,最小化到系统托盘不仅可以节省任务栏空间,还能让应用在后台持续运行,随时为用户提供服务。

本文以Rouyan这个WPF应用为例,说明在WPF中如何实现最小化到系统托盘。

选择

在WPF中实现系统托盘功能,开发者通常有以下几种选择:

1、System.Windows.Forms.NotifyIcon:最传统的方式,需要引用WinForms

2、Hardcodet.NotifyIcon.Wpf:专为WPF设计的托盘组件

3、H.NotifyIcon.Wpf:Hardcodet的现代维护版本

这里我选择的是H.NotifyIcon.Wpf,选择H.NotifyIcon.Wpf的优势:

1、现代化维护:相比原版Hardcodet,H.NotifyIcon.Wpf有更活跃的维护和bug修复

2、完全兼容:保留了原版的API和XAML命名空间,迁移成本为零

3、WPF原生:无需引入WinForms依赖,与WPF的数据绑定和样式系统完美集成

4、功能丰富:支持气泡提示、上下文菜单、多种鼠标事件等

H.NotifyIcon.Wpf项目地址:https://github.com/HavenDV/H.NotifyIcon

使用

先描述一下,我们想要实现的效果,我想要点击最小化与关闭的时候,让这个应用最小化到系统托盘,然后点击系统托盘的图标显示这个应用,或者右键系统托盘的图标,有两个选项,一个是显示窗口,一个是退出,点击退出才真的退出程序。

第一步安装nuget包:

第二步在主窗口中添加控件:

先添加xmlns:tb="http://www.hardcodet.net/taskbar"StateChanged="Window_StateChanged"

 <!-- 系统托盘图标 -->
 <tb:TaskbarIcon x:Name="TrayIcon"
          IconSource="/Assets/福州肉燕.ico"
          ToolTipText="Rouyan"
          TrayLeftMouseDown="TrayIcon_TrayLeftMouseDown">
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值