想让wpf Window应用在启动后不显示在TaskBar,只显示为SystemTray Icon,点击icon后显示主界面。怎么实现啊?
想让wpf Window应用在启动后不显示在TaskBar,只显示为SystemTray Icon,点击icon后显示主界面。怎么实现啊?
------解决方案--------------------没有用过wpf
------解决方案--------------------Window类有个ShowInTaskbar属性
------解决方案--------------------窗体的ShowInTaskbar=false,WindowState=Minimized
添加Notifyicon控件,并指定一Icon值
------解决方案--------------------wpf 好象是N年前我用过的那个文字处理的软件吧?
对这类你不能控制源代码的程序可以用 API 找到它的Windows Handler,然后向它的窗口发消息,让它不在Task Bar里边显示.但这些都不是纯.NET的手法.
------解决方案--------------------我发一下代码,这是从网上找的,已经经过我测试了,你可以修改后生成一个类库,然后在你的程序中引用。现在这段代码可以直接编译,只要找一个icon图标。
using System ;
using System.Drawing ;
using System.Collections ;
using System.ComponentModel ;
using System.Windows.Forms ;
using System.Data ;
//导入在程序中使用到的名称空间
public class Tray : Form
{
private System.ComponentModel.Container components = null ;
private Icon mNetTrayIcon = new Icon ( "sun.ico " ) ;
private NotifyIcon TrayIcon ;
private ContextMenu notifyiconMnu ;
public Tray()
{
//初始化窗体中使用到的组件
InitializeComponent ( ) ;
//初始化托盘程序的各个要素
Initializenotifyicon ( ) ;
}
private void Initializenotifyicon ( )
{
//设定托盘程序的各个属性
TrayIcon = new NotifyIcon ( ) ;
TrayIcon.Icon = mNetTrayIcon ;
TrayIcon.Text = "用Visual C#做托盘程序 " + "\n " + "作者:llg于2007 " ;
TrayIcon.Visible = true ;
TrayIcon.Click += new System.EventHandler ( this.click ) ;
//定义一个MenuItem数组,并把此数组同时赋值给ContextMenu对象
MenuItem [ ] mnuItms = new MenuItem [ 3 ] ;
mnuItms [ 0 ] = new MenuItem ( ) ;
mnuItms [ 0 ] .Text = "用Visual C#做托盘程序! " ;
mnuItms [ 0 ] .Click += new System.EventHandler ( this.showmessage ) ;
mnuItms [ 1 ] = new MenuItem ( "- " ) ;
mnuItms [ 2 ] = new MenuItem ( ) ;
mnuItms [ 2 ] .Text = "退出系统 " ;
mnuItms [ 2 ] .Click += new System.EventHandler ( this.ExitSelect ) ;
mnuItms [ 2 ] .DefaultItem = true ;
notifyiconMnu = new ContextMenu ( mnuItms ) ;
TrayIcon.ContextMenu = notifyiconMnu ;
//为托盘程序加入设定好的ContextMenu对象
}
public void click ( object sender , System.EventArgs e )
{
MessageBox.Show ( "Visual C#编写托盘程序中的事件响应 " ) ;
}
public void showmessage ( object sender , System.EventArgs e )
{
MessageBox.Show ( "你点击了菜单的第一个选项 " ) ;
}
public void ExitSelect ( object sender , System.EventArgs e )
{
//隐藏托盘程序中的图标
TrayIcon.Visible = false ;
//关闭系统
this.Close ( ) ;
}
//清除程序中使用过的资源
public void Disposem ( )
{
base.Dispose ( ) ;
if ( components != null )
components.Dispose ( ) ;
}
private void InitializeComponent ( )
{
this.SuspendLayout ( ) ;
this.AutoScaleBaseSize = new System.Drawing.Size ( 5 , 13 ) ;
this.ClientSize = new System.Drawing.Size ( 320 , 56 ) ;
this.ControlBox = false ;
this.MaximizeBox = false ;
this.MinimizeBox = false ;
this.WindowState = System.Windows.Forms.FormWindowState.Minimized ;
this.Name = "tray " ;
this.ShowInTaskbar = false ;
this.Text = "用Visual C#做托盘程序! " ;
this.ResumeLayout ( false ) ;
}
static void Main ( )
{
Application.Run ( new Tray ( ) ) ;