using PaintDotNet.Annotation.Enum; using System.Drawing; using System.Windows.Forms; namespace PaintDotNet.Annotation.FieldView { /// /// 多边形视场工具 /// public class ToolViewPolygon : ToolObject { private static ViewPolygon viewPolygon; /// /// 鼠标按下事件 /// /// /// public static void OnMouseDown(ISurfaceBox surfaceBox, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { Point p = GetEventPointInArea(surfaceBox, e.Location); if (viewPolygon == null) { viewPolygon = new ViewPolygon(p.X, p.Y); viewPolygon.ISurfaceBox = surfaceBox; viewPolygon.combineMode = surfaceBox.GetCombineMode(); AddNewObjectForView(surfaceBox, viewPolygon); } else { viewPolygon.setNextPoint(p); } surfaceBox.Refresh(); } else { if(viewPolygon !=null && viewPolygon.GetPoints().Count<=2) { surfaceBox.GraphicsList.RemoveObj(viewPolygon); viewPolygon = null; } surfaceBox.ActiveTool = DrawToolType.Pointer; //OnMouseUpTwo(surfaceBox, e); surfaceBox.GraphicsList.OnSelectChanged(); } } /// /// 鼠标移动事件 /// /// /// public static void OnMouseMove(ISurfaceBox drawArea, MouseEventArgs e) { //base.OnMouseMove(drawArea, e); } /// /// 覆盖父类的鼠标抬起事件,什么都不做 /// /// /// public static void OnMouseUp(ISurfaceBox drawArea, MouseEventArgs e) { //OnMouseUpTwo(drawArea, e); } public static void OnMouseClick(ISurfaceBox drawArea, MouseEventArgs e) { } /// /// 鼠标左键双击 /// /// /// public static void OnMouseLeftDoubleClick(ISurfaceBox surfacebox, MouseEventArgs e) { } /// /// 删除按键 /// /// /// public static void OnDelKeyDown(ISurfaceBox surfacebox, MouseEventArgs e) { } /// /// 删除划痕处理&污迹处理选择区域的痕迹 /// /// /// public static void OnDel2KeyDown(ISurfaceBox surfacebox, MouseEventArgs e) { } /// /// 清空全部时调用该方法,将可能未绘制完的对象清空 /// public static void beginWithNewObject() { viewPolygon = null; } } }