wpf增加系统托盘图标

这篇具有很好参考价值的文章主要介绍了wpf增加系统托盘图标。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用系统托盘,可以为用户提供一个简便快捷的操作习惯。

wpf中增加系统托盘图标有2种

第一种,使用Hardcodet.NotifyIcon.Wpf开源组件

1.建立一个wpf程序

wpf增加系统托盘图标

2.安装Hardcodet.NotifyIcon.Wpf

wpf增加系统托盘图标

3.增加图片

图片选择资源,否则获取不到路径

wpf增加系统托盘图标

wpf增加系统托盘图标

4.界面前台代码

其中此处可以重写MenuItem的样式,以及其他事件

<Window x:Class="WpfApp3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp3"
        mc:Ignorable="d"
        xmlns:tb="http://www.hardcodet.net/taskbar"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <tb:TaskbarIcon x:Name="NotifyIcon"
                        IconSource="/img/logo.ico"
                        ToolTipText="故里2130" TrayMouseDoubleClick="NotifyIco_MouseDoubleClick"
                         >
            <tb:TaskbarIcon.ContextMenu>
                <ContextMenu>
                    <TextBlock Text="菜单1" />
                    <MenuItem Header="菜单2" Background="Red"
                              CommandParameter="{Binding}">
                        <MenuItem.Icon>
                            <Image Width="16"
                                   Height="16"
                                   Source="/img/logo.ico" />
                        </MenuItem.Icon>
                    </MenuItem>
                    <Separator />
                    <MenuItem Header="菜单3"
                              CommandParameter="{Binding}">
                        <MenuItem.Icon>
                            <Image Width="16"
                                   Height="16"
                                   Source="/img/logo.ico" />
                        </MenuItem.Icon>
                    </MenuItem>
                </ContextMenu>
            </tb:TaskbarIcon.ContextMenu>
        </tb:TaskbarIcon>
        <TextBlock>123</TextBlock>
    </Grid>
</Window>

5.界面后台代码

  private void NotifyIco_MouseDoubleClick(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("123");
        }

 6.效果

wpf增加系统托盘图标

第二种,使用winform中带的控件,NotifyIcon。

1.同样建立一个程序,但是图标要修改成嵌入的资源,否则获取不到路径

wpf增加系统托盘图标

2. 因为NotifyIcon是winform中的控件,所以只能在cs文件中增加代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Drawing;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp3
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        /// <summary>
        /// 任务图标
        /// </summary>
        NotifyIcon notifyIcon = null;

        public MainWindow()
        {
            InitializeComponent();
            SetIcon();
        }

        /// <summary>
        /// 设置图标
        /// </summary>
        private void SetIcon()
        {
            this.notifyIcon = new NotifyIcon();
            this.notifyIcon.BalloonTipText = "故里2130"; //设置程序启动时显示的文本
            this.notifyIcon.Text = "故里2130";//最小化到托盘时,鼠标点击时显示的文本
            this.notifyIcon.Icon = new System.Drawing.Icon(AppDomain.CurrentDomain.BaseDirectory + @"/img/logo.ico");//程序图标
            this.notifyIcon.Visible = true;
            notifyIcon.MouseDoubleClick += NotifyIcon_MouseDoubleClick; ;

            ContextMenuStrip cms = new ContextMenuStrip();

            //关联 NotifyIcon 和 ContextMenuStrip
            notifyIcon.ContextMenuStrip = cms;

            System.Windows.Forms.ToolStripMenuItem exitMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            exitMenuItem.Text = "退出";
            exitMenuItem.Click += ExitMenuItem_Click; ;

            System.Windows.Forms.ToolStripMenuItem hideMenumItem = new System.Windows.Forms.ToolStripMenuItem();
            hideMenumItem.Text = "隐藏";
            hideMenumItem.Click += HideMenumItem_Click; ;

            System.Windows.Forms.ToolStripMenuItem showMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            showMenuItem.Text = "显示";
            showMenuItem.Click += ShowMenuItem_Click; ;

            cms.Items.Add(exitMenuItem);
            cms.Items.Add(hideMenumItem);
            cms.Items.Add(showMenuItem);

            this.notifyIcon.ShowBalloonTip(1000);
        }

        private void NotifyIcon_MouseDoubleClick(object? sender, System.Windows.Forms.MouseEventArgs e)
        {
            System.Windows.MessageBox.Show("123");
        }

        private void ShowMenuItem_Click(object? sender, EventArgs e)
        {
            System.Windows.MessageBox.Show("显示");
        }

        private void HideMenumItem_Click(object? sender, EventArgs e)
        {
            System.Windows.MessageBox.Show("隐藏");
        }

        private void ExitMenuItem_Click(object? sender, EventArgs e)
        {
            System.Windows.MessageBox.Show("退出");
        }

        private void Window_Closed(object sender, EventArgs e)
        {
            notifyIcon.Dispose();       //退出释放图标
        }
    }
}

3.效果

wpf增加系统托盘图标

2种方式,任意一种都可以,第一种更加的灵活,方便一些。

来源:wpf增加系统托盘图标_wpf 系统托盘_故里2130的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-499472.html

到了这里,关于wpf增加系统托盘图标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【WinUI 3】用H.NotifyIcon显示系统任务栏(托盘)图标,实现程序后台运行

    Windows平台上很多需要持续后台运行的程序,都有显示任务栏图标的需求,主要来显示状态信息、提供功能菜单栏。但UWP或Windows App SDK并没有提供对应的API,相反可能是在有意的抑制此项功能,我有理由怀疑是微软的战略布局。 但很显然,这项功能目前并不能有其它完美的替

    2024年02月06日
    浏览(203)
  • Qt实现最小化窗口到托盘图标

    目录 前言: 1.先看效果图 2.大致思路以及实现流程 3.具体代码以及解释 4.总结 使用QT开发桌面软件,将软件最小化至托盘这样的功能的是比较常见的,今天自己实现一下这个功能,并进行记录总结。  主要功能就是当软件开始运行, 在系统托盘会自动出现一个关于本软件的

    2023年04月08日
    浏览(48)
  • 完全隐藏Win 10托盘中自带的安全中心图标

    事情是这样的,每次看到这个图标总是让我不爽,即使收纳到隐藏栏之后,我也受不了。再者,如果我要是在安装第三方安全软件后,这个隐藏栏就有自带和第三方安全软件图标,而且显得冗余,所以我打算把自带的完全隐藏。 下面就是我使用的2种具体方法: 第1步: 打开

    2024年02月06日
    浏览(66)
  • Java实现Windows任务栏图标闪烁功能,托盘图标闪烁,点击任务栏打开Java窗口

      JFrame 是指一个计算机语言-java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化、最小化、关闭。 GUI主要功能是实现人与计算机等电子设备的人机交互。它是用户与操作系统之间进行数据传递和互动操控的工具,用户可以通过一定的操作实现对电子

    2024年01月24日
    浏览(38)
  • 在WPF应用中,结合阿里矢量图标库使用Geometry图标

    在我们的SqlSugar开发框架的WPF应端中,有时候我们需要在按钮或者其他界面元素上使用一些图标,框架中我们可以使用 lepoco/wpfui 项目的图标库,也可以使用Font-Awesome-WPF 图标库,另外我们如果喜欢阿里矢量图标库的,也可以通过使用Geometry图标来实现图标的展示,本篇随笔介

    2024年01月25日
    浏览(63)
  • WPF使用SharpVectors显示SVG图标

    W3C SVG Working Group SVG它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形。 矢量图形,不受像素影响——SVG的这个特性使得它在不同的平台或者媒体下表现良好,无论屏幕分辨率如何,适合WPF使用。 iconfont-阿里巴巴矢量图标库提供了大量的SVG图标。 但是WPF本身不支持

    2024年02月13日
    浏览(45)
  • svg矢量图标在wpf中的使用

    在wpf应用程序开发中,为支持图标的矢量缩放,及在不同分辨率下界面中图标元素的矢量无损缩放,所以常常用到svg图标,那么如果完 美的将svg图标运用到wpf日常的项目开发中呢,这里分享一下我的个人使用经验和详细步骤。 1、SvgToXaml 工具 我经常使用一款开源的svg转xaml的

    2024年01月21日
    浏览(63)
  • python-在系统托盘显示CPU使用率和内存使用率

    一、添加轮子 1.添加托盘区图标库  infi.systray 2.添加图像处理库  Pillow 3.添加  psutil  来获取CPU、内存信息 二、完整代码 三、实际效果展示

    2024年02月05日
    浏览(68)
  • 在WPF窗口中增加水印效果

    ** ** 以Canvas作为水印显示载体,在Canvas中创建若干个TextBlock控件用来显示水印文案,如下图所示 然后以每一个TextBlock的左上角为中心旋转-30°,最终效果会是如图红线所示: 为了达到第一行旋转后刚好与窗口上边沿齐平,需要计算第一行其实位置的Top坐标,由于旋转角度为

    2024年02月04日
    浏览(37)
  • WPF 如何引入图标文件

    我最近在研究WPF,吃饭嘛,桌面端实在是不想用Winform,太丑了。WPF研究好了之后也不会直接去学UWP,MAUI,我是实用主义者,不是技术更新追求者,本身的理念就是能用就行。我现在用的Vue版本还是Vue 2呢。Vue 3?暂时用不上,只是换了个方法去写,写出来的结果还是差不多。

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包