Browse Source

ComPDFKit.Tool(win)-多选移动补充缩放比,多选拖拽补充鼠标样式逻辑

liyijie 7 months ago
parent
commit
60c81ce6b7

+ 3 - 0
Demo/Examples/ComPDFKit.Tool/CPDFToolManager.cs

@@ -531,6 +531,7 @@ namespace ComPDFKit.Tool
             CPDFEditPage cPDFEditPage = cPDFPage.GetEditPage();
             cPDFEditPage.BeginEdit(CPDFEditType.EditText | CPDFEditType.EditImage);
             List<CPDFEditArea> cPDFEditAreas = cPDFEditPage.GetEditAreaList(true);
+            float zoom = (float)viewerTool.PDFViewer.GetZoom();
             for (int i = 0; i < e.MultiObjectIndex.Count; i++)
             {
                 if (e.MultiObjectIndex[i] < cPDFEditAreas.Count)
@@ -544,6 +545,8 @@ namespace ComPDFKit.Tool
                         cRect = (cPDFEditAreas[e.MultiObjectIndex[i]] as CPDFEditImageArea).GetClipRect();
                     }
                     Point point = DpiHelper.StandardPointToPDFPoint(e.MoveOffset);
+                    point.X = point.X / zoom;
+                    point.Y = point.Y / zoom;
                     if (point.X != 0 && point.Y != 0 && e.ZoomX == 1 && e.ZoomY == 1)
                     {
                         cRect.left += (float)point.X;

+ 2 - 0
Demo/Examples/ComPDFKit.Tool/CPDFViewerTool.TextEdit.cs

@@ -13,6 +13,7 @@ using ComPDFKitViewer.Helper;
 using ComPDFKitViewer.Layer;
 using System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Linq;
 using System.Text;
 using System.Threading;
@@ -1001,6 +1002,7 @@ namespace ComPDFKit.Tool
                             editAreaMultiIndex.Remove(editAreaObject.EditAreaIndex);
                             editAreaList.Remove(selectedRect);
                             multiSelectedRect.Draw();
+                            PDFViewer.UpdateRenderFrame();
                             return true;
                         }
                     }

+ 6 - 6
Demo/Examples/ComPDFKit.Tool/DrawTool/MultiSelectedRect.cs

@@ -1259,19 +1259,19 @@ namespace ComPDFKit.Tool.DrawTool
                     }
                 }
 
-                Rect defrect = drawDefaultRect;
+                Rect defrect = drawRect;
 
                 defrect.X -= rectPadding;
                 defrect.Y -= rectPadding;
                 defrect.Width += rectPadding;
                 defrect.Height += rectPadding;
-                if (drawDefaultRect.Contains(point))
+                if (drawRect.Contains(point))
                 {
                     Rect rect = new Rect(
-                        Math.Max(drawDefaultRect.X + rectPadding, 0),
-                        Math.Max(drawDefaultRect.Y + rectPadding, 0),
-                        drawDefaultRect.Width - 2 * rectPadding,
-                        drawDefaultRect.Height - 2 * rectPadding);
+                        Math.Max(drawRect.X + rectPadding, 0),
+                        Math.Max(drawRect.Y + rectPadding, 0),
+                        drawRect.Width - 2 * rectPadding,
+                        drawRect.Height - 2 * rectPadding);
                     if (rect.Contains(point))
                     {
                         if (!ignoreList.Contains(PointControlType.Body))