RectPort.cs 755 B

1234567891011121314151617181920212223242526
  1. using System.Windows;
  2. namespace SHJX.Service.WorkFlowEdit
  3. {
  4. public class RectPort : PortBase
  5. {
  6. static RectPort()
  7. {
  8. FrameworkElement.DefaultStyleKeyProperty.OverrideMetadata(
  9. typeof(RectPort), new FrameworkPropertyMetadata(typeof(RectPort)));
  10. }
  11. public override Point GetEdgePoint(Point target)
  12. {
  13. var rect = new Rect(Center.X - ActualWidth / 2, Center.Y - ActualHeight / 2, ActualWidth, ActualHeight);
  14. return GeometryHelper.RectLineIntersection(rect, target);
  15. }
  16. public override bool IsNear(Point point)
  17. {
  18. var rect = new Rect(Center.X - ActualWidth / 2, Center.Y - ActualHeight / 2, ActualWidth, ActualHeight);
  19. rect.Inflate(Sensitivity, Sensitivity);
  20. return GeometryHelper.RectContains(rect, point);
  21. }
  22. }
  23. }