TrayIcon 1.0.7-preview
See the version list below for details.
dotnet add package TrayIcon --version 1.0.7-preview
NuGet\Install-Package TrayIcon -Version 1.0.7-preview
<PackageReference Include="TrayIcon" Version="1.0.7-preview" />
paket add TrayIcon --version 1.0.7-preview
#r "nuget: TrayIcon, 1.0.7-preview"
// Install TrayIcon as a Cake Addin #addin nuget:?package=TrayIcon&version=1.0.7-preview&prerelease // Install TrayIcon as a Cake Tool #tool nuget:?package=TrayIcon&version=1.0.7-preview&prerelease
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.0.7.*)
- Added events integration.
- Fixed ClickCommand and DoubleClickCommand behaviors.
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. 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. 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. 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 was computed. |
.NET Framework | net45 is compatible. net451 is compatible. 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.
-
.NETFramework 4.5
- No dependencies.
-
.NETFramework 4.5.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.
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 |
Added events integration.
Fixed behavior of ClickCommand and DoubleClickCommand.