C# Tray Icon 만들기

반응형

Winfrom이든 WPF든 Tray Icon을 사용하기 위해서는 Winfrom의 NotifyIcon 을 사용해야한다.

WPF에서는 System.Windows.Forms 를 참조 추가해야 함.

 

1. MainWindow의 멤버변수로 NotifyIcon 추가

private NotifyIcon trayIcon;

2. TrayIcon을 생성하는 함수 추가

- TrayIcon 에 출력될 메뉴들에 대하여 ContextMenu를 추가하여 TrayIcon의 ContextMenu에 추가하여 사용한다.

private void CreateTrayIcon()
{
ContextMenu trayIconMenu = new ContextMenu();
MenuItem openMenu = new MenuItem("Open");
MenuItem exitMenu = new MenuItem("Exit");
trayIconMenu.MenuItems.Add(openMenu);
trayIconMenu.MenuItems.Add(exitMenu);
openMenu.Click += OpenMenu_Click;
exitMenu.Click += ExitMenu_Click;
trayIcon = new NotifyIcon();
trayIcon.Icon = Properties.Resources.IconFile;
trayIcon.Visible = true;
trayIcon.ContextMenu = trayIconMenu;
trayIcon.Text = "App Name";
trayIcon.DoubleClick += TrayIcon_DoubleClick;
}

3. App이 종료될때 꼭 trayIcon을 Dispose해줘야 하단의 트레이 아이콘이 바로 삭제된다

private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
trayIcon.Dispose();
}
반응형

'[====== Development ======] > C#' 카테고리의 다른 글

WPF Screen 사이즈 정보 가져오기  (0) 2021.11.02
.Net 버전표  (0) 2021.11.01
간편한 INI 파일 Handler  (0) 2021.10.26
[WPF] Invert 가능한 BooleanToVisibilityConverter  (1) 2021.10.26
[WPF] Pack URI  (0) 2021.10.26