Измерения (FrameworkElement.ActualWidth FrameworkElement.ActualHeight) и положения (Canvas.Top, Canvas.Bottom, Canvas.Left, Canvas.Right) ваших элементов будет достаточно, если они всегда будут прямоугольными. В этом случае вы можете легко вычислить, перекрываются ли два прямоугольника. Если ваши элементы могут быть более сложных форм, они становятся волосатыми. Я понятия не имею, могу ли я проверить на пересечение двух экземпляров Visual в WPF.
Может быть, мы можем использовать hittesting ? При таком подходе вы могли бы по крайней мере проверить, пересекаются ли определенные точки или геометрии с определенным визуалом. Таким образом, вам нужно будет определить геометрию или список точек, которые более или менее близко соответствуют границам вашего второго визуала.