WPF:通知区域托盘显示且不显示任务栏图标

using System.Windows.Forms;
Demo

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    InitialTray();
}

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
    WSCommFunc.WriteLog(_logFile, string.Format("Window_Closing...."));
    if (_notifyIcon != null)
    {
        _notifyIcon.Visible = false;
        _notifyIcon.Dispose();
        _notifyIcon = null;
    }
    System.Environment.Exit(0);
}

NotifyIcon _notifyIcon;
private void InitialTray()
{
    _notifyIcon = new NotifyIcon();
    // 当光标放在上面的提示文本
    _notifyIcon.Text = "自动升级工具";
    // 通知区域是否显示图标
    _notifyIcon.Visible = true;
    // 不显示任务栏按钮
    ShowInTaskbar = false;
    // 读取程序图标,来作为托盘图标
    _notifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(System.Windows.Forms.Application.ExecutablePath);

    MenuItem open = new MenuItem("显示");
    open.Click += Open_Click;
    MenuItem hide = new MenuItem("隐藏");
    hide.Click += Hide_Click;
    _notifyIcon.ContextMenu = new ContextMenu(new MenuItem[] { open, hide });
    _notifyIcon.MouseDoubleClick += _notifyIcon_MouseDoubleClick;
}

private void _notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        this.Open_Click(sender, e);
    }
}

private void Hide_Click(object sender, EventArgs e)
{
    this.ShowInTaskbar = false;
    this.Visibility = Visibility.Hidden;
}

private void Open_Click(object sender, EventArgs e)
{
    this.Visibility = Visibility.Visible;
    this.ShowInTaskbar = true;
    this.Activate();
}
原文地址:https://www.cnblogs.com/wesson2019-blog/p/12524964.html