| 1234567891011121314151617181920212223242526272829 |
- using System.Windows;
- namespace SHJX.Service.WorkFlowEdit
- {
- public class EllipsePort: PortBase
- {
- static EllipsePort()
- {
- FrameworkElement.DefaultStyleKeyProperty.OverrideMetadata(
- typeof(EllipsePort), new FrameworkPropertyMetadata(typeof(EllipsePort)));
- }
- public override Point GetEdgePoint(Point target)
- {
- var a = ActualWidth / 2;
- var b = ActualHeight / 2;
- var p = new Point(target.X - Center.X, target.Y - Center.Y);
- p = GeometryHelper.EllipseLineIntersection(a, b, p);
- return new Point(p.X + Center.X, p.Y + Center.Y);
- }
- public override bool IsNear(Point point)
- {
- var a = ActualWidth / 2 + Sensitivity;
- var b = ActualHeight / 2 + Sensitivity;
- return GeometryHelper.EllipseContains(Center, a, b, point);
- }
- }
- }
|