后台代码如下:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
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; namespace Demo
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private NotifyIcon TrayIcon;
WindowState ws;
WindowState wsl;
private System.Windows.Forms.ContextMenu notifyiconMnu;
public MainWindow()
{
InitializeComponent();
Initializenotifyicon();
//保证窗体显示在上方。
wsl = WindowState; }
private void OnNotifyIconDoubleClick(object sender, EventArgs e)
{
this.Show();
WindowState = wsl;
} private void Window_StateChanged(object sender, EventArgs e)
{
ws = WindowState;
if (ws == WindowState.Minimized)
{
this.Hide();
}
}
public void TopAllmost(object sender, System.EventArgs e)
{
try
{
System.Windows.Forms.MenuItem item = (System.Windows.Forms.MenuItem)sender;
bool check = item.Checked;
item.Checked = !check;
this.Topmost = item.Checked;
}
catch
{
}
} public void ExitSelect(object sender, System.EventArgs e)
{
TrayIcon.Visible = false;
this.Close();
}
private void Initializenotifyicon()
{
Assembly assem = Assembly.GetExecutingAssembly();
Stream stream = assem.GetManifestResourceStream(
"Tray.ico"); TrayIcon = new NotifyIcon();
TrayIcon.Icon = new System.Drawing.Icon("Tray.ico");//程序图标
this.TrayIcon.BalloonTipText = "Hello, 文件监视器"; //设置程序启动时显示的文本
TrayIcon.Text = "MutiMenu " + "Copyright: Frank Zhao";
TrayIcon.Visible = true;
TrayIcon.MouseDoubleClick += OnNotifyIconDoubleClick;
this.TrayIcon.ShowBalloonTip(1000);
// TrayIcon.Click += new System.EventHandler(this.click); //tray menu
System.Windows.Forms.MenuItem[] mnuItms = new System.Windows.Forms.MenuItem[5];
mnuItms[0] = new System.Windows.Forms.MenuItem();
mnuItms[0].Text = "Aways Top";
mnuItms[0].Click += new System.EventHandler(this.TopAllmost);
mnuItms[0].Checked = true; mnuItms[1] = new System.Windows.Forms.MenuItem("-"); mnuItms[2] = new System.Windows.Forms.MenuItem();
mnuItms[2].Text = "Settings...";
// mnuItms[2].Click += new System.EventHandler(this.Settings); mnuItms[3] = new System.Windows.Forms.MenuItem("-"); mnuItms[4] = new System.Windows.Forms.MenuItem();
mnuItms[4].Text = "Exit";
mnuItms[4].Click += new System.EventHandler(this.ExitSelect);
mnuItms[4].DefaultItem = true; notifyiconMnu = new System.Windows.Forms.ContextMenu(mnuItms);
TrayIcon.ContextMenu = notifyiconMnu;
}
}
}

Wpf程序显示在任务栏的更多相关文章

  1. MFC 不让程序显示在任务栏上

    如果是对话框程序直接在对话框的 初始化时,修改样式 ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW); 但是对于多文档或是单文档,则没有对应的对话框样式需 ...

  2. Delphi中,除了应用程序主窗口会显示在任务栏上,其它窗口默认都不会显示在任务栏.

    Delphi中,除了应用程序主窗口会显示在任务栏上,其它窗口默认都不会显示在任务栏. Delphi中,除了应用程序主窗口会显示在任务栏上,其它窗口默认都不会显示在任务栏.没有MS开发环境中的ShowI ...

  3. MFC 使程序不在任务栏显示

    在OnInitDialog()中直接修改窗口风格: // 让本程序不在任务栏显示(创建一个工具条窗口) ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);

  4. Winform程序以Icon的形式显示在任务栏右下角

    Form最小化是指整个Form都缩小到任务栏上,但是是以Form的标题栏形式显示的, 若是想让Form以Icon的形式显示在任务栏右下角,则需要给Form添加一个NotifyIcon控件, 在使窗体最 ...

  5. WPF程序最小化到任务通知栏

    我们通常使用的桌面软件,都可以最小化到任务通知栏,并且可以从任务通知栏再打开当前软件,或者通过软件的快捷方式从任务通知栏呼出. 我们可以通过下面的方式把WPF程序最小化到任务栏.由于WPF并没有实现N ...

  6. Winform 程序嵌入WPF程序 并发送消息

    废话不多说,先看解决方案目录 WindowsFormsDemo是主程序,WpfApp是嵌入的WPF程序,先看WPF程序,程序默认启动的页面是MainWindow.xaml,这里注释掉App.xaml里 ...

  7. 为 WPF 程序添加 Windows 跳转列表的支持

    原文:为 WPF 程序添加 Windows 跳转列表的支持 Windows 跳转列表是自 Windows 7 时代就带来的功能,这一功能是跟随 Windows 7 的任务栏而发布的.当时应用程序要想用 ...

  8. 在WPF程序中打开网页:使用代理服务器并可进行JS交互

    本项目环境:使用VS2010(C#)编写的WPF程序,通过CefSharp在程序的窗体中打开网页.需要能够实现网页后台JS代码中调用的方法,从网页接收数据,并能返回数据给网页.运行程序的电脑不允许上网 ...

  9. WPF 图片显示中的保留字符问题

    在WPF中显示一张图片,本是一件再简单不过的事情.一张图片,一行XAML代码即可. 但是前段时间遇到了一件奇怪的事: 开发机上运行正常的程序,在某些客户机器上却显示不了图片,而且除了这个问题,其它运行 ...

随机推荐

  1. C语言:复合语句

    复合语句(compound statement)简称为语句块,它使用大括号把许多语句和声明组合到一起,形成单条语句.语句块与简单的语句不同,语句块不用分号当作结尾.用括号{}括起来组成的一个语句称复合 ...

  2. Junit测试用例配置Log4j

    用Junit测试非常方便,但有时我们想要看日志来方便排除,使用spring+log4j时,用Junit测试看日志很多人都不太会,即如何将Junit与log4j进行整合. 我也是研究了半天,才终于找到了 ...

  3. 痞子衡嵌入式:嵌入式MCU中通用的三重中断控制设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式MCU中通用的三重中断控制设计. 我们知道在 MCU 裸机中程序代码之所以能完成多任务并行实时处理功能,其实主要是靠中断来调度的, ...

  4. 关于hashcode和equals方法说明

    一.前言 我们都知道,要比较两个对象是否相等时需要调用对象的equals()方法,即判断对象引用所指向的对象地址是否相等,对象地址相等时,那么与对象相关的对象句柄.对象头.对象实例数据.对象类型数据等 ...

  5. vue使用GraphVis开发无限拓展的关系图谱

    1.去GraphVis官网下载对应的js,新版和旧版的js有所不同,看自己需求引入旧版还是新版(GraphVis官方网址:http://www.graphvis.cn/) visgraph.min.j ...

  6. 微信小程序 -- 英语词典 (小程序插件)

    英语词典小程序 基于英语词典小程序插件 - 提供开源地址 项目地址 英语词典小程序插件: 微信小程序 词典 真题基础服务插件(gitee.com) 功能特色 [x] 全面详实的经典词库,详细释义覆盖约 ...

  7. 【GCC编译器】计算支配树信息 Part1 - 求CFG的深度为主搜索树

    深度为主生成树:将图中所有的结点和那些构成深度为主次序的边表示为树的形式,并将其他的边(这些边不是深度为主次序的一部分)用一种有别于树的方式来表示(我们用虚线而不是实线表示它们) 属于深度为主生成树的 ...

  8. SQL语句(五)子查询

    目录 一.子查询含义 二.子查询分类 按子查询的位置分 按结果集的行列数不同分 三.WHERE后面的子查询 1. 标量子查询 2. 列子查询(多行子查询) 3. 行子查询(结果为一行多列或多行多列) ...

  9. js--class类、super和estends关键词的学习笔记

    前言 JavaScript 语言在ES6中引入了 class 这一个关键字,在学习面试的中,经常会遇到面试官问到谈一下你对 ES6 中class的认识,同时我们的代码中如何去使用这个关键字,使用这个关 ...

  10. SpringBoot - Bean validation 参数校验

    目录 前言 常见注解 参数校验的应用 依赖 简单的参数校验示例 级联校验 @Validated 与 @Valid 自定义校验注解 前言 后台开发中对参数的校验是不可缺少的一个环节,为了解决如何优雅的对 ...