本文介绍如何设置 WPF 应用在关闭窗口最小化到托盘,虽然窗口关闭,但进程仍然运行的方法。
依赖
Hardcodet.NotifyIcon.Wpf 是一个专用于WPF的托盘运行库,
点击这里前往 Github 查看,点击这里前往 Nuget 查看。
我们可以直接在 VS 的包管理界面中搜索,点击安装即可。
代码
准备一个用于在托盘显示的图标文件:app.ico(注意这里的文件类型选择 icon 格式文件,不能使用其他图片格式,尽量使用没有背景色的内容,在图像分辨率的长和宽保持一致,为正方形形状)。将其放到项目中。
修改 App.xaml 文件,引入xmlns:tb="http://www.hardcodet.net/taskbar" 命名空间。
修改 App.xaml 文件添加元素 TaskbaIcon ,代码如下
<tb:TaskbarIcon x:Key="Taskbar"
IconSource="/app.ico">
<tb:TaskbarIcon.TrayToolTip>
<Border Background="White"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="4"
Width="120"
Height="40">
<TextBlock Text="这里是应用提示信息"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
</tb:TaskbarIcon.TrayToolTip>
<tb:TaskbarIcon.ContextMenu>
<ContextMenu FontSize="14" Placement="AbsolutePoint" Width="100">
<MenuItem Margin="0,4,0,0" Header="退出" />
</ContextMenu>
</tb:TaskbarIcon.ContextMenu>
</tb:TaskbarIcon>
修改 App.xaml 文件,在 Applicaiton元素上设置应用退出模式
<Application x:Class="Wpf.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:AppAnalysisClientWpf"
xmlns:tb="http://www.hardcodet.net/taskbar"
ShutdownMode="OnExplicitShutdown">
</Application>
到此 WPF 程序启动后,右下角托盘中会出现对应的应用图标,窗口关闭也不会立即退出,对着托盘图标右键退出才会结束。