private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { this.InvokeEx(() => { ++this.time; if (this.time >= this.WaitForHiddenTime.TotalSeconds && !this.IsKeepShow) { if (this.Content is FrameworkElement) { FrameworkElement element = this.Content as FrameworkElement; Point point = Mouse.GetPosition(element); HitTestResult result = VisualTreeHelper.HitTest(element, point); if (result == null || result.VisualHit == null) { element.BeginHideWithOpacityAndVisibility(this.ShowOrHideDuration, null); } else { return; } } this.timer.Stop(); this.isStop = true; } }); }