private void HandleMouseMove(MouseEventArgs e) { var curve = HitTestCurves(MousePosition); if (_currentMouseMoveCurve == null && curve == null) return; if (_currentMouseMoveCurve == null) { _currentMouseMoveCurve = curve; curve.OnMouseEnter(e); return; } if (curve == null) { _currentMouseMoveCurve.OnMouseLeave(e); _currentMouseMoveCurve = curve; return; } if (_currentMouseMoveCurve != curve) { _currentMouseMoveCurve.OnMouseLeave(e); _currentMouseMoveCurve = curve; _currentMouseMoveCurve.OnMouseEnter(e); return; } _currentMouseMoveCurve.OnMouseMove(e); }