一 基本功能

1. 这里是用 NotifyIcon 控件来实现,但 WPF 下没有 NotifyIcon  控件,怎么办,用 WinForm 下的呗。

先引用  .NET 自带的两个程序集
System.Windows.Forms 是用来使用 NotifyIcon 控件的;
System.Drawing 是用来引用图标文件的

WPF实现窗体最小化后小图标在右边任务栏下

2. 图标

WPF实现窗体最小化后小图标在右边任务栏下

3. 设置图标属性

WPF实现窗体最小化后小图标在右边任务栏下

4.这里很重要,因为程序运行后,会在运行程序目录下去找图标文件,这样设置后就会在应用程序目录下生成对应的文件,如果不设置,到时候出错就找不到原因,反正这里我是搞了几个小时才发现这里要这样设置的。

WPF实现窗体最小化后小图标在右边任务栏下

5. 设置窗体的 StateChanged="Window_StateChanged_1" 事件

WPF实现窗体最小化后小图标在右边任务栏下

6.代码

        using System.Windows.Forms;
        using System.IO;

        WindowState ws;
        WindowState wsl;
        NotifyIcon notifyIcon; 
 

        public MainWindow()
        {
            InitializeComponent();
 

            icon();


            //保证窗体显示在上方。 
            wsl = WindowState;
        }


        private void icon()
        {
            string path = System.IO.Path.GetFullPath(@"Icon\013.ico");
            if (File.Exists(path))
            {
                this.notifyIcon = new NotifyIcon();
                this.notifyIcon.BalloonTipText = "Hello, 文件监视器"; //设置程序启动时显示的文本
                this.notifyIcon.Text = "文件监视器";//最小化到托盘时,鼠标点击时显示的文本
                System.Drawing.Icon icon = new System.Drawing.Icon(path);//程序图标 
                this.notifyIcon.Icon = icon;
                this.notifyIcon.Visible = true;
                notifyIcon.MouseDoubleClick += OnNotifyIconDoubleClick;
                this.notifyIcon.ShowBalloonTip(1000);
            }
           
        }

        private void OnNotifyIconDoubleClick(object sender, EventArgs e)
        {
            this.Show();
            WindowState = wsl;
        }

 

        private void Window_StateChanged_1(object sender, EventArgs e)
        {
            ws = this.WindowState;
            if (ws == WindowState.Minimized)
            {
                this.Hide();
            }
        } 
View Code

相关文章: