using PaintDotNet.Annotation.Enum; using System.Drawing; using System.Windows.Forms; namespace PaintDotNet.Annotation.FieldView { /// /// 任意三角形视场工具 /// public class ToolViewTriangleEx : ToolObject { private static ViewTriangleEx _viewPolygon; /// /// 鼠标按下事件 /// /// /// public static void OnMouseDown(ISurfaceBox surfaceBox, MouseEventArgs e) { if (e.Button == MouseButtons.Left && e.Clicks != 2) { Point p = GetEventPointInArea(surfaceBox, e.Location); if (_viewPolygon == null) { _viewPolygon = new ViewTriangleEx(p.X, p.Y); _viewPolygon.ISurfaceBox = surfaceBox; _viewPolygon.combineMode = surfaceBox.GetCombineMode(); AddNewObjectForView(surfaceBox, _viewPolygon); } else { _viewPolygon.SetNextPoint(p); } surfaceBox.Refresh(); if (_viewPolygon.GetPoints().Count > 2) { _viewPolygon = null; surfaceBox.ActiveTool = DrawToolType.Pointer; surfaceBox.GraphicsList.OnSelectChanged(); } } else { if (_viewPolygon != null && _viewPolygon.GetPoints().Count <= 2) { surfaceBox.GraphicsList.RemoveAt(0); } _viewPolygon = null; surfaceBox.ActiveTool = DrawToolType.Pointer; 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; } } }