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