WPF托盘运行

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
其他阅读

记录一次Unity中的同步问题

在以前做的数字孪生应用中,使用的 socket 进行定制协议开发,服务和 Unity 客户端之间可以互相进行通信,在开发时代价太大,除了正常制定数据协议外,还需要针对粘包定制切包协议。在WEB化的过程中,准备把原有的数字孪生服务端进行迁移,使用全新的 asp.net core 进行开发,双方使用 signalR 进行数据交互。

查看原文

C#获取电脑的网卡地址

使用C#开发Windows应用,需要进行特定网卡绑定的时候我们需要获取电脑本机的网卡地址,本文会介绍几种获取电脑网卡地址的方法。

查看原文

管道技术——中间件的灵魂

在现代Web开发中,中间件技术使用越来越广泛,本文带大家了解中间件的基础,同时也是中间件的灵魂所在,管道技术。在C#中,依赖于委托,我们可以很容易就实现一个中间件管道。所以在阅读本文前,请确保你已经学会了什么是委托,包括但不限于Delegate,Action,Func。除此之外,本文还会使用到反射相关知识,请确保你已经学会了什么是反射。

查看原文

WPF打包成单文件

在开发WPF程序时,有时我们需要把整个软件打包成一个文件,这样可以方便分发,本文将会介绍怎么把WPF打包成单文件形式。

查看原文

解决ssh登录后闲置一段时间断开

最新新买了一台服务器,使用 ssh 登录之后发现一段时间没有输入就会自动断开,这里记录一下解决方法。

查看原文