** 이 프로젝트는 다른 플랫폼(WinUI/Uno.Skia.Wpf/Console)에 대한 비활성 기본 프로젝트의 연속입니다 - https://github.com/hardcodet/wpf-notifyicon **
이는 .Net 6 WPF/WinUI/Uno.Skia.WPF/Console 플랫폼용 NotifyIcon(시스템 트레이 아이콘 또는 작업 표시줄 아이콘이라고도 함)을 구현한 것입니다. 이는 Windows Forms NotifyIcon 구성 요소에만 의존하는 것이 아니라 풍부한 도구 설명, 팝업, 상황에 맞는 메뉴 및 풍선 메시지를 표시하기 위해 WPF/WinUI 프레임워크의 여러 기능을 활용하는 완전히 독립적인 컨트롤입니다. 코드에서 직접 사용하거나 모든 XAML 파일에 포함할 수 있습니다.
Install-Package H.NotifyIcon.Wpf
Install-Package H.NotifyIcon.WinUI
Install-Package H.NotifyIcon.Uno
Install-Package H.NotifyIcon.Uno.WinUI
# If you need other platforms, you can use this Core library -
# it allows you to make NotifyIcon even in a console application.
Install-Package H.NotifyIcon
< Window
xmlns : tb = " clr-namespace:H.NotifyIcon;assembly=H.NotifyIcon.Wpf " // WPF
xmlns : tb = " using:H.NotifyIcon " // WinUI
>
< tb : TaskbarIcon
ToolTipText = " ToolTip "
IconSource = " /Images/TrayIcons/Logo.ico "
ContextMenu = " {StaticResource TrayMenu} "
MenuActivation = " LeftOrRightClick "
TrayPopup = " {StaticResource TrayStatusPopup} "
PopupActivation = " DoubleClick "
TrayToolTip = " {StaticResource TrayToolTip} "
/>
</ Window >
Windows 11에는 효율성 모드라는 새로운 개념이 도입되었습니다.
기본적으로 이 라이브러리는 TrayIcon을 통해 상호 작용할 수 있는 기능을 사용하여 백그라운드에 존재하는 애플리케이션을 위한 것이므로 라이브러리는 이 모드에 대한 API를 구현합니다.
EfficiencyModeUtilities . SetEfficiencyMode ( bool value )
WindowExtensions . Hide ( this Window window , enableEfficiencyMode : true ) // default value
WindowExtensions . Show ( this Window window , disableEfficiencyMode : true ) // default value
TaskbarIcon . ForceCreate ( bool enablesEfficiencyMode = true ) // default value
예시 1:
< tb : TaskbarIcon >
< tb : TaskbarIcon .IconSource>
< tb : GeneratedIconSource
Text = " "
Foreground = " Red "
/>
</ tb : TaskbarIcon .IconSource>
</ tb : TaskbarIcon >
예시 2:
< tb : TaskbarIcon
IconSource = " /Icons/Error.ico "
>
< tb : TaskbarIcon .IconSource>
< tb : GeneratedIconSource
Text = " 5 "
Foreground = " Black "
FontSize = " 36 "
FontWeight = " Bold "
/>
</ tb : TaskbarIcon .IconSource>
</ tb : TaskbarIcon >
예시 3:
< tb : TaskbarIcon >
< tb : TaskbarIcon .IconSource>
< tb : GeneratedIconSource
Text = " "
Foreground = " Red "
FontFamily = " Segoe UI Emoji "
Background = " AliceBlue "
FontWeight = " Bold "
FontSize = " 38 "
/>
</ tb : TaskbarIcon .IconSource>
</ tb : TaskbarIcon >
예시 4:
< tb : TaskbarIcon >
< tb : TaskbarIcon .IconSource>
< tb : GeneratedIconSource
Text = " "
BorderThickness = " 5 "
FontSize = " 46 "
>
< tb : GeneratedIconSource .Foreground>
< LinearGradientBrush StartPoint = " 0,0 " EndPoint = " 128,128 " >
< GradientStop Color = " White " />
< GradientStop Color = " Red " />
</ LinearGradientBrush >
</ tb : GeneratedIconSource .Foreground>
< tb : GeneratedIconSource .BorderBrush>
< LinearGradientBrush StartPoint = " 0,0 " EndPoint = " 128,128 " >
< GradientStop Color = " White " />
< GradientStop Color = " Red " />
</ LinearGradientBrush >
</ tb : GeneratedIconSource .BorderBrush>
</ tb : GeneratedIconSource >
</ tb : TaskbarIcon .IconSource>
</ tb : TaskbarIcon >
쉽게 볼 수 있도록 디자이너 아이콘을 고정해 두는 것을 권장합니다. 이렇게 하려면 작업 표시줄 설정 -> 기타 시스템 트레이 아이콘으로 이동하여 이 아이콘을 활성화하세요.
현재 세 가지 모드가 구현되어 있으며 각 모드에는 장단점이 있습니다.
다양한 옵션의 가용성(사용 중인 WindowsAppSDK
버전에 따라 다름):
옵션 | 패키지된 앱 | 패키지되지 않은 앱 |
---|---|---|
투명도 | 1.1.0-미리보기부터 | 1.1.0-미리보기부터 |
무제한 | 1.1.0-미리보기부터 | |
애니메이션 | , 그러나 테두리가 있음 | 1.1.0-미리보기부터 |
하위 메뉴 |
버그 우선 위치: https://github.com/HavenDV/H.NotifyIcon/issues 아이디어 및 일반적인 질문 우선 위치: https://github.com/HavenDV/H.NotifyIcon/discussions Discord도 있습니다 지원 채널:
https://discord.gg/g8u2t9dKgE