System.Windows.Forms에서 NotifyIcon 컨트롤을 사용해야하거나 Windows API에서 제공하는 Notify Icon API를 사용할 수도 있습니다. WPF 이와 동등한 기능을 제공하지 않으며 Microsoft Connect에서 여러 번 요청되었습니다.
System.Windows.Forms
WPF 응용 프로그램에서 NotifyIcon Component 를 사용하는 GitHub 에 코드가 있습니다.이 코드는 https://github.com/wilson0x4d/Mubox/blob/master/Mubox.QuickLaunch/AppWindow.xaml.cs 에서 볼 수 있습니다
요약 비트는 다음과 같습니다.
ShowInTaskbar = False를 사용하여 WPF 창을 생성하고 표시 할 수없는 상태로로드합니다.
수업 수준에서 :
private System.Windows.Forms.NotifyIcon notifyIcon = null;
OnInitialize () 중 :
notifyIcon = new System.Windows.Forms.NotifyIcon();
notifyIcon.Click += new EventHandler(notifyIcon_Click);
notifyIcon.DoubleClick += new EventHandler(notifyIcon_DoubleClick);
notifyIcon.Icon = IconHandles["QuickLaunch"];
OnLoaded () 중 :
notifyIcon.Visible = true;
상호 작용 (위의 notifyIcon.Click 및 DoubleClick으로 표시) :
void notifyIcon_Click(object sender, EventArgs e)
{
ShowQuickLaunchMenu();
}
여기에서 컨텍스트 메뉴, 팝업 창 등과 같은 WPF 컨트롤 및 API 사용을 재개 할 수 있습니다.
그렇게 간단합니다. 구성 요소를 호스팅하는 데 WPF Window가 정확히 필요하지는 않습니다. WPF 앱에 WPF 앱을 도입하는 가장 편리한 방법입니다 (창은 일반적으로 App.xaml을 통해 정의 된 기본 진입 점이므로). SWF 구성 요소는 .NET Framework (현재 및 미래의 모든 .NET Framework 버전을 기반으로 함)의 일부이므로 WPF를 지원하는 .NET Framework 설치에도 SWF 구성 요소가 존재하므로 WPF 래퍼 또는 타사 컨트롤이 필요하지 않습니다. 현재까지 Microsoft는 SWF 지원이 곧 .NET Framework에서 중단 될 것이라는 징후가 없습니다.
희망이 도움이됩니다.
트레이 아이콘을 얻으려면 3.0 이전 프레임 워크 구성 요소를 사용해야하지만 치즈가 WPF 범위 내에있는 시스템 트레이 개념은 없습니다. WPF는 프레젠테이션 기술이며 알림 아이콘은 운영 체제 ( "프레젠테이션"이 아님) 개념입니다.