// https://github.com/AvaloniaUI/Avalonia/issues/2649#issuecomment-620720914 using System.IO; namespace System.Application.UI { /// /// Represents a taskbar notification area icon (aka "tray icon") on Windows, /// and similar task panel notification icons on Linux and Mac. /// /// public interface INotifyIcon { /// /// Gets or sets the icon for the notify icon. Either a file system path /// or a resm: manifest resource path can be specified. /// string IconPath { get; set; } /// /// Gets or sets the tooltip text for the notify icon. /// string ToolTipText { get; set; } /// /// Gets or sets the context- (right-click)-menu for the notify icon. /// TContextMenu? ContextMenu { get; set; } /// /// Gets or sets if the notify icon is visible in the /// taskbar notification area or not. /// bool Visible { get; set; } /// /// Removes the notify icon from the taskbar notification area. /// void Remove(); /// /// This event is raised when a user clicks on the notification icon. /// event EventHandler Click; /// /// This event is raised when a user doubleclicks on the notification icon. /// event EventHandler DoubleClick; /// /// This event is raised when a user right-clicks on the notification icon. /// event EventHandler RightClick; public interface IUIFrameworkHelper { Stream OpenAsset(Uri uri); void ForEachMenuItems(TContextMenu menu, Action<(object menuItem, string header, Action activated)> action); } } }