C# wpf NotifyIcon空间模仿qqz最小化,关闭功能(12)

1,新建wpf项目


        
            这是这主程序,模仿qq 最小化功能
            功能1:运行这个程序最小化托盘里面有这个程序的图标
            功能2:点击最小化或者关闭,程序去最小化托盘并不退出,任务栏没有这个程序的图标,
            功能3:在最小化托盘里面找到这个程序后,鼠标放上去显示程序名字。点击图标还原程序窗口
            功能4:在最小化托盘里面找到这个程序后,右击显示退出,点击后推出。
        
    

后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using ContextMenu = System.Windows.Forms.ContextMenu;
using MenuItem = System.Windows.Forms.MenuItem;

namespace Wpfqq
{
    /// 
    /// MainWindow.xaml 的交互逻辑
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            this.ShowInTaskbar = false;
            InitializeComponent();
            icon();
      
        }
       
        

        NotifyIcon notifyIcon = null;
        private void icon()
        {
            this.notifyIcon = new NotifyIcon();
         //   this.notifyIcon.BalloonTipText = "Hello, 文件监视器"; //设置程序启动时显示的文本
            
            this.notifyIcon.Text = "右下角程序";//最小化到托盘时,鼠标点击时显示的文本
            this.notifyIcon.Icon = new System.Drawing.Icon("C:\\Users\\用户\\source\\repos\\Wpfqq\\Wpfqq\\image\\logo.ico");//程序图标
            this.notifyIcon.Visible = true;       
            notifyIcon.MouseClick += OnNotifyIconClick;

            MenuItem m1 = new MenuItem("退出");
            m1.Click += m1_Click;
           MenuItem[] m = new MenuItem[] { m1 };
            this.notifyIcon.ContextMenu = new ContextMenu(m);


        }
        //右击推出
        private void m1_Click(object sender, EventArgs e)
        {
          //彻底推出
           Environment.Exit(0);
        }

        //点击托盘程序图标后程序窗口还原
        private void OnNotifyIconClick(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (this.WindowState == WindowState.Minimized)
            {
                this.Show();
                this.WindowState = WindowState.Normal;

            }
        }

        //窗口最小化时隐藏程序
        private void Window_StateChanged(object sender, EventArgs e)
        {
            if (this.WindowState == WindowState.Minimized)
            {
                this.Hide();
            }
          
          
        }
        //点击关闭窗体
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {//取消关闭
            e.Cancel = true;
         
           
            this.WindowState = WindowState.Minimized;
            this.Hide();
        }
    }
}

完成后测试,达到要求
注意事项:该控件需要添加System.Windows.Forms.dll引用。

你可能感兴趣的:(wpf)