반응형
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 |