Path.Data - это геометрический объект.Класс Geometry имеет несколько методов, которые могут помочь вам выполнить тест с допустимым отклонением:
GetFlattenedPathGeometry(Double, ToleranceType)
GetOutlinedPathGeometry(Double, ToleranceType)
GetRenderBounds(Pen, Double, ToleranceType)
Я думаю, что GetRenderBounds будет работать лучше для вас.
Как только у вас есть геометрия (плюс небольшая ширина)Вы можете позвонить
geometry.FillContains(Point, Double, ToleranceType)
или
geometry.StrokeContains(Pen, Point, Double, ToleranceType)
Из всего этого вы должны настроить желаемый удар из теста на удар;