2017-06-13 126 views
0

(WPF C#) 我希望尽量减少应用程序到系统托盘,但没有在任务栏图标: enter image description here 所以我设置:麻烦以最小化的应用程序到系统托盘

this.ShowInTaskbar = false; 

然后不可取图标消失,但新酒吧出现在桌面上!

enter image description here

是否有人请有想法如何解决最小化后,这个问题?

这里是我的代码重要组成部分:

private void stateChangedEvent(object sender, EventArgs e) 
     {    
      if (WindowState.Minimized == WindowState) 
      { 
       this.ShowInTaskbar = false; 
       var iconHandle = Properties.Resources.iconPaw.GetHicon(); 
       notifyIcon.Icon = System.Drawing.Icon.FromHandle(iconHandle); 
       notifyIcon.Click += new EventHandler(this.WindowsStateToNormal); 
       notifyIcon.Visible = true; 
       notifyIcon.BalloonTipText = "Radek app"; 
       notifyIcon.BalloonTipTitle = "Welcome Message"; 
       notifyIcon.BalloonTipIcon = System.Windows.Forms.ToolTipIcon.Info; 
       notifyIcon.ShowBalloonTip(3000); 
      } 
     } 

     private void WindowsStateToNormal(object Sender, EventArgs e) 
     { 
      this.WindowState = WindowState.Normal; 
      notifyIcon.Visible = false;    
     } 
+0

请更新您的信息的实际文字,请勿将图像放入文字中。 – Soviut

+0

我要更新它,对不起 – user7968180

回答

1

尝试调用

this.Hide()

当窗体最小化,最好是在Form.Resize事件处理程序:

private void frmMain_Resize(object sender, EventArgs e) 
{ 
    if (this.WindowState == FormWindowState.Minimized) 
     this.Hide(); 
} 

在某些时候,你必须调用

this.Show()

例如,在NotifyIconDoubleClick处理程序中。

+0

在WPF上,事件的名称是StateChanged not Resize。 – user7968180

0

你的主窗口和通知图标有激活的感觉没有关系。

您通常不希望正在运行的应用程序消失,无法再次激活它。因此,Windows为应用程序的用户提供了通过单击其任务栏图标(您要隐藏)或单击其边框(您也不想显示)来重新激活窗口的选项。

为了避免这种情况,只需在最小化时隐藏主窗口,并在通知图标(双击)时取消隐藏。

这是用较少的字和更多的代码在minimize app to system trayHow do I minimize a WinForms application to the notification area?Minimize to trayMinimizing a system windows form in tray in C# without seeing it hanging where taskbar等说明。

1

最小化到托盘有点破解。为了实现它,你需要:

  • 捕获的最小化事件,并取消,以防止实际的最小化
  • 隐藏与this.Hide()
  • 应用程序窗口监听任务栏上的图标点击事件,并取消隐藏应用程序窗口点击时
+0

我更新了为什么this.Hide()对我无效。 – user7968180

+1

如果您从'NotifyIcon'侦听'Click'事件并执行this.Show(),它将立即显示。 – Soviut

+1

您现在也可以配置应用程序以显示在任务栏中。 – Soviut

相关问题