WPF托盘运行

本文介绍如何将WPF应用最小化到托盘,窗口关闭后进程仍然运行的方法。

依赖

Hardcodet.NotifyIcon.Wpf 是一个专用于WPF的托盘运行库, 点击这里前往 Github 查看点击这里前往 Nuget 查看

代码

准备一个用于在托盘显示的图标文件:app.ico。将其放到项目中。

修改 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程序启动后,右下角托盘中会出现对应的应用图标,窗口关闭也不会立即退出,对着托盘图标右键退出才会结束。

发布时间:2023-07-04