티스토리 뷰

반응형

wpf에서 tray를 구현하려면 windowforms 어셈블리를 참조하여 구현하여야 합니다.  

저는 어플리케이션을 시작할 때 바로 트레이에 표시할 것이므로, wpf 어플리케이션의 시작점인 App.xaml.cs에 tray를 바로 할당 할 예정입니다. Using문 추가 및 App 클래스 내부에 NotifyIcon 객체 필드를 생성합니다.

그리고 그 후 작업은 NotifyIcon에 객체를 할당해주면 됩니다. 저는 doge png를 받아 Reosurce로 추가해주었고, png->bitmap->bitmapHandle을 이용하여 icon을 만들어주었습니다. 쉽게 표현하자면, png 리소스에서 ico 리소스로 변환하는 작업을 c#소스코드로 작성하였습니다. 이 작업은 icon을 이용하는데 필수적인 작업이 아닙니다. 디자이너에게 ico 리소스를 받게된다면 변환과정은 불필요한 작업이라 생각됩니다.

결과물

후기: tray를 만드는 작업은 굉장히 간단했습니다. 이후에 필요한 작업은 추가적으로 개발자가 해결하면 됩니다.
후기2: 가장 시간을 소요한 부분은, 오히려 토픽 외적인 부분인 비하인드 소스코드에서 packUri 참조방식 검토와 png -> icon으로 변환과정이었습니다. 

 

 

반응형