diff --git a/src/Shared/HandyControl_Shared/Controls/Other/NotifyIcon.cs b/src/Shared/HandyControl_Shared/Controls/Other/NotifyIcon.cs index f9b072f9..80da1670 100644 --- a/src/Shared/HandyControl_Shared/Controls/Other/NotifyIcon.cs +++ b/src/Shared/HandyControl_Shared/Controls/Other/NotifyIcon.cs @@ -165,7 +165,39 @@ namespace HandyControl.Controls public static readonly DependencyProperty IsBlinkProperty = DependencyProperty.Register( "IsBlink", typeof(bool), typeof(NotifyIcon), new PropertyMetadata(ValueBoxes.FalseBox, OnIsBlinkChanged)); - private static void OnIsBlinkChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + public void ShowBalloonTip(string tipTitle, string tipText, ToolTipIcon tipIcon) + { + if (DesignerHelper.IsInDesignMode) return; + + var data = new NOTIFYICONDATA + { + hWnd = _messageWindowHandle, + uID = _id, + uFlags = NativeMethods.NIF_INFO, + dwInfoFlags = NativeMethods.NIF_TIP, + szInfoTitle = tipTitle ?? string.Empty, + szInfo = tipText ?? string.Empty, + }; + + switch (tipIcon) + { + case ToolTipIcon.Info: + data.dwInfoFlags = NativeMethods.NIIF_INFO; + break; + case ToolTipIcon.Warning: + data.dwInfoFlags = NativeMethods.NIIF_WARNING; + break; + case ToolTipIcon.Error: + data.dwInfoFlags = NativeMethods.NIIF_ERROR; + break; + case ToolTipIcon.None: + data.dwInfoFlags = NativeMethods.NIIF_NONE; + break; + } + UnsafeNativeMethods.Shell_NotifyIcon(NativeMethods.NIM_MODIFY, data); + } + + private static void OnIsBlinkChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var ctl = (NotifyIcon)d; if (ctl.Visibility != Visibility.Visible) return; diff --git a/src/Shared/HandyControl_Shared/Data/Enum/ToolTipIcon.cs b/src/Shared/HandyControl_Shared/Data/Enum/ToolTipIcon.cs new file mode 100644 index 00000000..19acf612 --- /dev/null +++ b/src/Shared/HandyControl_Shared/Data/Enum/ToolTipIcon.cs @@ -0,0 +1,25 @@ +namespace HandyControl.Data +{ + public enum ToolTipIcon + { + /// + /// No Icon. + /// + None = 0, + + /// + /// A Information Icon. + /// + Info = 1, + + /// + /// A Warning Icon. + /// + Warning = 2, + + /// + /// A Error Icon. + /// + Error = 3 + } +}