WPF托盘运行

发布时间:2023-07-04

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

其他阅读

git的一些技巧

git 是一个免费开源分布式版本控制系统,可以高效处理从小型到超大型项目内容管理,本文会介绍一些 git 使用的技巧。

查看原文

游记 | 山城重庆

最近都在忙着推进中物视的事情,还挺忙的,最近昆明的天气比较难受,工作日都是晴天,到了周末就下雨。刚好碰上在重庆有一个会议需要参加,趁着这个机会就去重庆旅游。

查看原文

C#获取电脑的网卡地址

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

查看原文

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

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

查看原文

记录中文名WPF应用无法启动

今年开春,突然就收到部分用户反馈软件无法启动的问题,沟通后远程查看发现应用刚启动就直接崩溃了,在Windows的事件查看器可以看到应用的崩溃日志,发现是 ucrtbase.dll 模块崩溃,错误代码 0x0000409

查看原文