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

Fetch发送请求

fetch 是 javascript 中一个新的 api,用于访问和控制 HTTP 的请求和响应等,不再需要使用传统的 XMLHttoRequest

查看原文

浅析web前端中的MVC模式

MVC是常见的软件架构设计模式,它通过分离关注点改进代码的组织方式。区别于软件设计模式,只是为了解决问题总结出的抽象方法,一种架构模式种往往会用到多种设计模式。

查看原文

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

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

查看原文

Windows的刘海生成器

其实是很早之前在论坛讨论当时苹果率先推出了带刘海的 mac book pro 的时候,就花了几分钟做了一个模拟刘海的软件,可以给 Windows 系统加上刘海。

查看原文

Entity Framework Core链接Oracle的问题

最近使用 Entity Framework Core 来链接 Oracle 11g 数据库,发现很多 LINQ 语句使用起来都会有问题,查看日志输出发现是生成SQL语句无法被 11g 版本执行,好在Oracle官方已经给我们提供了解决方案。

查看原文