private bool HitTestDrawing(GlyphRunDrawing drawing, Point pt) { GeometryGroup geomGroup = (GeometryGroup)drawing.GlyphRun.BuildGeometry(); if (drawing.Bounds.Contains(pt) || geomGroup.Bounds.Contains(pt) || geomGroup.FillContains(pt, 1, ToleranceType.Absolute)) { return(true); } return(false); }
public bool IsPointInRegion(Point point) { bool isIn = false; if (regionGeo != null) { isIn = regionGeo.FillContains(point); if (!isIn && IsSelected) { isIn = selectionGeoList.Any(geo => geo.FillContains(point)); } } return(isIn); }