private void OnMouseLeave(object sender, MouseEventArgs e) { var c = AssociatedObject.Template.FindName("PART_CANVAS", AssociatedObject) as Canvas; if (c != null) { foreach (var child in c.Children.OfType <Path>()) { PathExtensions.SetIsDimmed(child, false); } } }
private void OnMouseMove(object sender, MouseEventArgs e) { if (this.canvas == null) { this.canvas = AssociatedObject.Template.FindName("PART_CANVAS", AssociatedObject) as Canvas; } if (canvas != null) { var pt = e.GetPosition((UIElement)sender); Path hit = null; HitTestResultCallback callback = r => { if (r.VisualHit is Path p) { hit = p; return(HitTestResultBehavior.Stop); } return(HitTestResultBehavior.Continue); }; VisualTreeHelper.HitTest(AssociatedObject, Filter, callback, new PointHitTestParameters(pt)); if (hit != null) { foreach (var child in canvas.Children.OfType <Path>()) { PathExtensions.SetIsDimmed(child, hit != child); } } else { foreach (var child in canvas.Children.OfType <Path>()) { PathExtensions.SetIsDimmed(child, false); } } } }