ToolBinaryAddOval.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using PaintDotNet.Annotation.Enum;
  2. using System.Drawing;
  3. using System.Windows.Forms;
  4. namespace PaintDotNet.Annotation.Other
  5. {
  6. /// <summary>
  7. /// 二值提取-交互操作-添加-椭圆(需要绘制图形)
  8. /// </summary>
  9. public class ToolBinaryAddOval : ToolObject
  10. {
  11. /// <summary>
  12. /// 用于绘制的椭圆
  13. /// </summary>
  14. private static DrawBinaryAddOval drawObject;
  15. public static void OnMouseDown(ISurfaceBox drawArea, MouseEventArgs e)
  16. {
  17. Point pointscroll = GetEventPointInArea(drawArea, e.Location);
  18. drawObject = new DrawBinaryAddOval(drawArea, pointscroll.X, pointscroll.Y, 1, 1);
  19. drawObject.ISurfaceBox = drawArea;
  20. AddNewObject(drawArea, drawObject);
  21. }
  22. public static void OnMouseMove(ISurfaceBox drawArea, MouseEventArgs e)
  23. {
  24. Point pointscroll = GetEventPointInArea(drawArea, e.Location);
  25. if (e.Button == MouseButtons.Left)
  26. {
  27. drawArea.GraphicsList[0].MoveHandleTo(pointscroll, 5);
  28. drawArea.Refresh();
  29. drawArea.GraphicsList.Dirty = true;
  30. }
  31. }
  32. public static void OnMouseUp(ISurfaceBox drawArea, MouseEventArgs e)
  33. {
  34. //椭圆删除
  35. drawArea.BinaryActionAddOval(drawObject.Rectangle);
  36. //删除对象
  37. RemoveOldObject(drawArea, drawObject);
  38. //处理连续绘制
  39. if (!drawArea.ContinuousBinaryAction())
  40. {
  41. drawArea.ActiveTool = DrawToolType.Pointer;
  42. }
  43. OnMouseUpTwo(drawArea, e);
  44. }
  45. public static void OnMouseClick(ISurfaceBox drawArea, MouseEventArgs e)
  46. {
  47. }
  48. /// <summary>
  49. /// 鼠标左键双击
  50. /// </summary>
  51. /// <param name="drawArea"></param>
  52. /// <param name="e"></param>
  53. public static void OnMouseLeftDoubleClick(ISurfaceBox surfacebox, MouseEventArgs e)
  54. {
  55. }
  56. /// <summary>
  57. /// 删除按键
  58. /// </summary>
  59. /// <param name="surfacebox"></param>
  60. /// <param name="e"></param>
  61. public static void OnDelKeyDown(ISurfaceBox surfacebox, MouseEventArgs e)
  62. {
  63. }
  64. /// <summary>
  65. /// 删除划痕处理&污迹处理选择区域的痕迹
  66. /// </summary>
  67. /// <param name="surfacebox"></param>
  68. /// <param name="e"></param>
  69. public static void OnDel2KeyDown(ISurfaceBox surfacebox, MouseEventArgs e)
  70. {
  71. }
  72. /// <summary>
  73. /// 清空全部时调用该方法,将可能未绘制完的对象清空
  74. /// </summary>
  75. public static void beginWithNewObject()
  76. {
  77. drawObject = null;
  78. }
  79. }
  80. }