4

好的,我是 WPF 的新手,但我必须使用 wpf 开发标题中的内容,但不依赖 MVVM。我遵循了这个:

只有托盘图标的 WPF 应用程序

我发现第一个答案是使用 hardcodet lib 的答案,但发现它太难了,而且 MVVM 有偏见。

所以跟着第二个,一切似乎都很好,只是最后它不起作用。所以在我的 App.xaml.cs 我放了:

public partial class App : Application
{
    private System.Windows.Forms.NotifyIcon notifyIcon = null;

    protected override void OnStartup(StartupEventArgs e)
    {
      base.OnStartup(e);
      UnityCore.Initialize();
    }

    protected override void OnActivated(EventArgs e)
    {
      notifyIcon = new System.Windows.Forms.NotifyIcon();
      notifyIcon.Click += NotifyIcon_Click;
      notifyIcon.DoubleClick += NotifyIcon_DoubleClick;

      Stream iconStream = Application.GetResourceStream(new Uri("pack://application:,,,/Resources/Images/ITA.png")).Stream;
      notifyIcon.Icon = new System.Drawing.Icon(iconStream);
      notifyIcon.Visible = true;
      base.OnActivated(e);
    }

    private void NotifyIcon_DoubleClick(object sender, EventArgs e)
    {
      Console.Beep();//show main window
    }

    private void NotifyIcon_Click(object sender, EventArgs e)
    {
      Console.Beep();//show main window
    }
}

开始时的主窗口是透明的或最小化的以使其不可见。

在这个阶段,我希望在托盘图标中看到 ITA 标志,然后单击或双击恢复主窗口。

但是我在托盘里没有看到该死的东西。

我认为标志资源已正确设置这是我的解决方案

在此处输入图像描述

感谢任何帮助。

4

0 回答 0