private FrameworkElement GetSnapGeometry(SnapPointKind kind) { string name; switch (kind) { case SnapPointKind.None: name = null; break; case SnapPointKind.Center: name = "CenterPointIcon"; break; case SnapPointKind.EndPoint: name = "EndPointIcon"; break; case SnapPointKind.MidPoint: name = "MidPointIcon"; break; case SnapPointKind.Quadrant: name = "QuadrantPointIcon"; break; case SnapPointKind.Focus: name = "FocusPointIcon"; break; default: throw new ArgumentException("snapPoint.Kind"); } if (name == null) { return(null); } var geometry = (Canvas)SnapPointResources[name]; geometry.Visibility = Visibility.Collapsed; SetAutoBinding(geometry, RenderTransformProperty, nameof(BindObject.SnapPointTransform)); geometry.DataContext = BindObject; return(geometry); }
public TransformedSnapPoint(Point worldPoint, Point controlPoint, SnapPointKind kind) { WorldPoint = worldPoint; ControlPoint = controlPoint; Kind = kind; }