我已经在程序中添加了一个任务栏图标,它应该显示“up”,并有一些按钮来切换某些功能。但是,任务栏图标没有显示出来。
我已经检查了System.Windows.Forms
是否包含在内,Application.Run()
方法是否在创建任务栏图标后调用,NotifyIcon
对象的Visible
属性是否设置为true,Icon属性是否设置正确(尝试了几个不同的属性,SystemIcons、我的应用程序图标、指定的文件),以及Text属性是否设置正确。
我已经看了各种SO的问题和答案都无济于事,这是一个针对.NET Framework 4.7.2
的Windows应用程序,它不利用表单,如果这很重要。
using System;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SomethingSomething
{
internal static class Program
{
static NotifyIcon trayIcon;
[STAThread]
static void Main()
{
// Start the webserver
StartWebServer().Wait();
// Create the tray icon
CreateTrayIcon();
// Needed for tray icon
Application.Run();
}
static void CreateTrayIcon()
{
trayIcon = new NotifyIcon
{
Visible = true,
Icon = SystemIcons.Information,
Text = "Current Song" + currentSong
};
var menu = new ContextMenu();
var toggleRPCMenuItem = new MenuItem("Toggle RPC", (s, e) => ToggleRPC());
var toggleAdsMenuItem = new MenuItem("Toggle Ads", (s, e) => ToggleAds());
var exitMenuItem = new MenuItem("Exit", (s, e) => Exit());
menu.MenuItems.Add(toggleRPCMenuItem);
menu.MenuItems.Add(toggleAdsMenuItem);
menu.MenuItems.Add(exitMenuItem);
trayIcon.ContextMenu = menu;
}
}
}
1条答案
按热度按时间nwsw7zdq1#
原来我有一个在
CreateTrayIcon();
之前运行的方法:从而阻止其余的代码。