protected override void OnMouseDown(MouseButtonEventArgs e) { base.OnMouseDown(e); ParentTaskbarIcon.CloseBalloon(); if (Click != null && e.LeftButton == MouseButtonState.Pressed) { Click.Invoke(this, EventArgs.Empty); } }
protected override void OnMouseEnter(MouseEventArgs e) { base.OnMouseEnter(e); if (isClosing) { return; } // Prevent closing CloseTime = CloseTime.AddMilliseconds(SecondaryCloseDelayTime); ParentTaskbarIcon.ResetBalloonCloseTimer(); }
protected void ScheduleClose(int closeDelay = 0) { Dispatcher.Invoke(new Action(async() => { // Declare intent CloseTime = DateTime.Now.AddMilliseconds(closeDelay); await Task.Delay(closeDelay); // Override check if (CloseTime == null || DateTime.Now < CloseTime) { return; } ParentTaskbarIcon.CloseBalloon(); }), DispatcherPriority.ContextIdle); }