原文:WPF应用最小化至系统托盘运行

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lordwish/article/details/51788897

WPF应用要实现最小化至系统托盘运行需要使用WinForm中的方法。


  1. using System.Windows.Forms;
  2. namespace ServerApp
  3. {
  4. /// <summary>
  5. /// MainWindow.xaml 的交互逻辑
  6. /// </summary>
  7. public partial class MainWindow : Window
  8. {
  9. private NotifyIcon _notifyIcon = null;
  10. public MainWindow()
  11. {
  12. InitializeComponent();
  13. InitialTray(); //最小化至托盘
  14. }
  15. #region 最小化系统托盘
  16. private void InitialTray()
  17. {
  18. //隐藏主窗体
  19. this.Visibility = Visibility.Hidden;
  20. //设置托盘的各个属性
  21. _notifyIcon = new NotifyIcon();
  22. _notifyIcon.BalloonTipText = "服务运行中...";//托盘气泡显示内容
  23. _notifyIcon.Text = "ServerApp";
  24. _notifyIcon.Visible = true;//托盘按钮是否可见
  25. _notifyIcon.Icon = new Icon(@"logo.ico");//托盘中显示的图标
  26. _notifyIcon.ShowBalloonTip(2000);//托盘气泡显示时间
  27. _notifyIcon.MouseDoubleClick += notifyIcon_MouseDoubleClick;
  28. //窗体状态改变时触发
  29. this.StateChanged += MainWindow_StateChanged;
  30. }
  31. #endregion
  32. #region 窗口状态改变
  33. private void MainWindow_StateChanged(object sender, EventArgs e)
  34. {
  35. if (this.WindowState == WindowState.Minimized)
  36. {
  37. this.Visibility = Visibility.Hidden;
  38. }
  39. }
  40. #endregion
  41. #region 托盘图标鼠标单击事件
  42. private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
  43. {
  44. if (e.Button == MouseButtons.Left)
  45. {
  46. if (this.Visibility == Visibility.Visible)
  47. {
  48. this.Visibility = Visibility.Hidden;
  49. }
  50. else
  51. {
  52. this.Visibility = Visibility.Visible;
  53. this.Activate();
  54. }
  55. }
  56. }
  57. #endregion
  58. }
  59. }

WPF应用最小化至系统托盘运行的更多相关文章

  1. 将 VMware 最小化到系统托盘

    1, 下载 Trayconizer官网地址: http://www.whitsoftdev.com/trayconizer/下载地址: http://www.whitsoftdev.com/files ...

  2. Delphi 7下最小化到系统托盘

    在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本.定义如下: 123456789   _NOTIFY ...

  3. Delphi 7下最小化到系统托盘(主要是WM_TRAYMSG和WM_SYSCOMMAND消息)

    在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本.定义如下: 123456789   _NOTIFY ...

  4. C# WinForm窗口最小化到系统托盘

    * C# WinForm窗口最小化到系统托盘http://hi.baidu.com/kfxtgtqyapouyze/item/8ccfdcd5a174a7312a35c7c3 主要功能:(1).程序启 ...

  5. 将Mozilla ThunderBird最小化到系统托盘(转载)

    转自:http://be-evil.org/mozilla-thunderbird-minize-to-tray.html Mozilla ThunderBird是一款非常不错的邮件客户端,但是其在默 ...

  6. electron监听系统托盘,electron是否最小化到系统托盘

    在项目中需要判断窗口是否最小化在系统托盘上,任务栏那已经关闭,查了一晚上的api,始终找不到可以调用的方法,最后绞尽脑汁想到了一个办法,那就是在点右上角的关闭按钮时,加个全局变量,用来标识已经最小到系 ...

  7. VC实现将对话框最小化到系统托盘

    1.minisysDlg.h头文件设置: 1)public: void setTray();//设置托盘    NOTIFYICONDATA nid;//NOTIFYICONDATA结构包含了系统用来 ...

  8. MFC程序最小化到系统托盘及其响应函数

    预备知识: Windows API函数: WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA pnid ...

  9. C#窗口实现最小化到系统托盘

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

随机推荐

  1. progerssbar-style 属性分析

    先看如下代码 <ProgressBar android:id="@+id/stateProgressBar" android:orientation="horizo ...

  2. setInterval()第一个参数带引号和不带引号的区别

    setInterval()第一个参数带引号和不带引号的区别:关于定时函数setInterval()的基本用法这里就不做介绍了,查阅相关教程即可,这里主要介绍一下setInterval()函数的第一个参 ...

  3. 在同一个局域网下实时访问vue项目,移动端也可以。

    之前,UI看做好的页面效果,一直都是把项目打包好后放上服务器跑. 现在,UI能实时看到我的项目的页面效果情况了. 那么问题来了!!! 要怎样做到呢??? 接下来照做就行了!!! 请您先打开项目下的pa ...

  4. 水题ing

    T1: https://www.luogu.org/problemnew/show/P1724幻想乡,东风谷早苗是以高达控闻名的高中生宅巫女.某一天,早苗终于入手了最新款的钢达姆模型.作为最新的钢达姆 ...

  5. SQLite基础学习

    SQLite是一款轻量级数据库,集成于android中,以下从分享一下自己学习的. 在查阅资料时有一些好的说明就直接用了: 主要的curd语句 以下SQL语句获取5条记录,跳过前面3条记录 selec ...

  6. Mahjong tree (hdu 5379 dfs)

    Mahjong tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tot ...

  7. SQL_wm_concat函数实验:实现字段合并

    原创作品,出自 "深蓝的blog" 博客.欢迎转载.转载时请务必注明下面出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...

  8. css使文本保留多个空格

    css属性: white-space: pre-wrap

  9. php实现 字符串分割

    php实现 字符串分割 一.总结 一句话总结: 1.字符串按固定位分割函数是什么? 7 $str_arr=str_split($str,8); 2.字符串填补函数的参数是什么? 10 $str_arr ...

  10. 百度ueditor vue项目应用 -- 图片上传源码修改

    本文目的有两个,一.废掉单图上传,二.改造多图上传 大家都知道百度ueditor不是针对vue项目开发的,官方文档提供的源码包里有需要后端配置的接口,but到vue项目就不太好办了,网上有些文章也介绍 ...