TrayIcon 1.1.1.1
dotnet add package TrayIcon --version 1.1.1.1
NuGet\Install-Package TrayIcon -Version 1.1.1.1
<PackageReference Include="TrayIcon" Version="1.1.1.1" />
paket add TrayIcon --version 1.1.1.1
#r "nuget: TrayIcon, 1.1.1.1"
// Install TrayIcon as a Cake Addin #addin nuget:?package=TrayIcon&version=1.1.1.1 // Install TrayIcon as a Cake Tool #tool nuget:?package=TrayIcon&version=1.1.1.1
Tray Icon
Library that allows use Tray Icon in WPF Application. Ported from Windows Forms. Has wrapper for WPF ContexMenu (which converts it to Windows Forms ContextMenu). This is needed for good performance, and compatibility. This library targets all MVVM requirements:
- it has bindable properties
- it has interface with notify methods
Patch details (1.1.0.*)
- Added support for new .NET versions.
- Added ability to switch beetwen
ContextMenu
orContextMenuStrip
usingContextMenuVariation
property.
Getting started.
First you need to include namespace to your code or markup.
For XAML it can look like:
<Window xmlns:icon="https://github.com/nullsoftware/TrayIcon" />
And for C#:
using NullSoftware.ToolKit;
Then you can place tray icon inside your window, or keep it in variable/property. For XAML:
<icon:TrayIconHandlers.TrayIcons>
<icon:TrayIcon Title="My Application"
IconSource="MainIcon.ico"
ClickCommand="{Binding ExampleCommand}"
NotificationServiceMemberPath="NotificationService"/>
</icon:TrayIconHandlers.TrayIcons>
For C#:
TrayIcon myTrayIcon = new TrayIcon()
{
Title = "My Application",
IconSource = new BitmapImage(new Uri("pack://application:,,,/MainIcon.ico")),
ClickCommand = new RelayCommand(ExampleAction)
};
To show balloon you need to call Notify
method:
INotificationService notifyService = myTrayIcon;
notifyService.Notify("Greetings", "Hello World!", NotificationType.Information);
Note: INotificationService
can be obtained from XAML by using NotificationServiceMemberPath
.
It injects INotificationService
to specified DataContext property.
Full Example:
<Window x:Class="TrayIcon.Example.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TrayIcon.Example"
xmlns:vm="clr-namespace:TrayIcon.Example.ViewModels"
xmlns:icon="https://github.com/nullsoftware/TrayIcon"
mc:Ignorable="d"
Title="MainWindow"
Height="450" Width="800"
Icon="MainIcon.ico">
<Window.DataContext>
<vm:MainViewModel/>
</Window.DataContext>
<icon:TrayIconHandlers.TrayIcons>
<icon:TrayIcon Title="My Application"
IconSource="MainIcon.ico"
DoubleClickCommand="{Binding MinimazeCommand}"
NotificationServiceMemberPath="NotificationService">
<icon:TrayIcon.ContextMenu>
<ContextMenu>
<MenuItem Header="Notify" Command="{Binding SayHelloCommand}" icon:TrayIcon.IsDefault="True"/>
<Separator/>
<MenuItem Header="_Silent Mode" IsCheckable="True" IsChecked="{Binding IsSilentModeEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<Separator/>
<MenuItem Header="E_xit" Command="{Binding CloseCommand}"/>
</ContextMenu>
</icon:TrayIcon.ContextMenu>
</icon:TrayIcon>
</icon:TrayIconHandlers.TrayIcons>
<Grid>
<StackPanel VerticalAlignment="Top"
HorizontalAlignment="Left"
Margin="10, 20"
Orientation="Horizontal">
<CheckBox VerticalAlignment="Center"
IsChecked="{Binding IsSilentModeEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Content="Silent Mode"/>
<Button Margin="20, 0, 0, 0"
Padding="10, 3"
MinWidth="86"
Command="{Binding SayHelloCommand}"
Content="Notify"/>
</StackPanel>
</Grid>
</Window>
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net5.0-windows7.0 is compatible. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net6.0-windows7.0 is compatible. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net7.0-windows7.0 is compatible. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 is compatible. netcoreapp3.1 is compatible. |
.NET Framework | net452 is compatible. net46 is compatible. net461 is compatible. net462 is compatible. net463 was computed. net47 is compatible. net471 is compatible. net472 is compatible. net48 is compatible. net481 was computed. |
-
.NETCoreApp 3.0
- No dependencies.
-
.NETCoreApp 3.1
- No dependencies.
-
.NETFramework 4.5.2
- No dependencies.
-
.NETFramework 4.6
- No dependencies.
-
.NETFramework 4.6.1
- No dependencies.
-
.NETFramework 4.6.2
- No dependencies.
-
.NETFramework 4.7
- No dependencies.
-
.NETFramework 4.7.1
- No dependencies.
-
.NETFramework 4.7.2
- No dependencies.
-
.NETFramework 4.8
- No dependencies.
-
net5.0-windows7.0
- No dependencies.
-
net6.0-windows7.0
- No dependencies.
-
net7.0-windows7.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
1.1.1.1 | 619 | 3/13/2024 | |
1.1.0.2 | 431 | 2/11/2024 | |
1.1.0.1 | 108 | 2/10/2024 | |
1.1.0 | 141 | 2/10/2024 | |
1.0.7.2 | 14,165 | 3/12/2022 | |
1.0.7.1 | 405 | 3/11/2022 | |
1.0.7 | 410 | 3/11/2022 | |
1.0.7-preview | 164 | 3/11/2022 | |
1.0.6.2 | 420 | 3/9/2022 | |
1.0.6 | 405 | 3/9/2022 | |
1.0.5.2 | 406 | 3/9/2022 | |
1.0.5 | 406 | 3/9/2022 | |
1.0.4.2 | 298 | 11/18/2021 | |
1.0.4 | 264 | 11/18/2021 | |
1.0.3 | 286 | 10/6/2021 | |
1.0.2 | 345 | 10/3/2021 | |
1.0.1 | 375 | 10/3/2021 | |
1.0.0 | 461 | 10/3/2021 |
Fixed critical bug with checkable menu items