private void Canvas_MouseDown(object sender, MouseButtonEventArgs e) > { > //Circle around clicked point: > double tolerance = 4; > Point ClickedPoint = e.GetPosition(MainCanvas); > EllipseGeometry eg = new EllipseGeometry(); > eg.RadiusX = tolerance; eg.RadiusY = tolerance; > eg.Center = ClickedPoint; > > // Geometry of an ellipse object on the canvas: > EllipseGeometry eg2 = new EllipseGeometry(); > > foreach (Ellipse TargetEllipse in MainCanvas.Children) > { > eg2.RadiusX = TargetEllipse.Width / 2; > eg2.RadiusY = TargetEllipse.Height / 2; > eg2.Center = new Point( > ((double)TargetEllipse.GetValue(Canvas.LeftProperty)) + TargetEllipse.Width / 2, > ((double)TargetEllipse.GetValue(Canvas.TopProperty)) + TargetEllipse.Height / 2 > ); > > //Combine them > CombinedGeometry cg = new CombinedGeometry(GeometryCombineMode.Intersect, eg, eg2); > > //Is there an overlap > if (!cg.Bounds.IsEmpty) > { > // Close enough - do something > } > } > }Rough code to work with ellipses only - better code would cope with any shape on the Canvas....