瀏覽代碼

其他- 多选移动逻辑优化

liyijie 7 月之前
父節點
當前提交
b6fa3536cd

+ 9 - 7
Demo/Examples/ComPDFKit.Tool/CPDFToolManager.cs

@@ -559,19 +559,21 @@ namespace ComPDFKit.Tool
                         if ((float)point.X == 0)
                         {
                             cRect.left += (float)point.X;
-                            cRect.right = cRect.left + (cRect.right - cRect.left) * e.ZoomX;
+                            cRect.right = cRect.left + (cRect.right - cRect.left) + (float)DpiHelper.StandardNumToPDFNum(e.ChangeX)  / zoom;
                         }
-                        else {
-                            
+                        else
+                        {
+
                             cRect.left += (float)point.X;
                         }
                         if ((float)point.Y == 0)
                         {
                             cRect.top += (float)point.Y;
-                            cRect.bottom = cRect.top + (cRect.bottom - cRect.top) * e.ZoomY;
+                            cRect.bottom = cRect.top + (cRect.bottom - cRect.top) + (float)DpiHelper.StandardNumToPDFNum(e.ChangeY) / zoom;
                         }
-                        else {
-                            
+                        else
+                        {
+
                             cRect.top += (float)point.Y;
                         }
                     }
@@ -1917,7 +1919,7 @@ namespace ComPDFKit.Tool
                         if (multiSelectedRect == null || multiSelectedRect.Children.Count == 0)
                         {
                             //Selection of mobile drawing logic
-                            if (e.mouseButtonEventArgs.LeftButton == MouseButtonState.Pressed&& createContentEditType == CPDFEditType.None)
+                            if (e.mouseButtonEventArgs.LeftButton == MouseButtonState.Pressed && createContentEditType == CPDFEditType.None)
                             {
                                 viewerTool.DrawMoveFrameSelect();
                             }

+ 8 - 0
Demo/Examples/ComPDFKit.Tool/CPDFViewerTool.MultiSelectedRect.cs

@@ -27,6 +27,10 @@ namespace ComPDFKit.Tool
         public float ZoomX { get; set; }
 
         public float ZoomY { get; set; }
+
+        public float ChangeX { get; set; }
+
+        public float ChangeY { get; set; }
     }
 
     public partial class CPDFViewerTool
@@ -62,6 +66,8 @@ namespace ComPDFKit.Tool
             {
                 multiSelectedAnnotData.ZoomX = multiSelectedRect.GetZoomX();
                 multiSelectedAnnotData.ZoomY = multiSelectedRect.GetZoomY();
+                multiSelectedAnnotData.ChangeX = multiSelectedRect.GetChangeX();
+                multiSelectedAnnotData.ChangeY = multiSelectedRect.GetChangeY();
                 multiSelectedAnnotData.MoveOffset = e;
                 multiSelectedAnnotData.ObjectType = multiSelectedRect.GetSelectedType();
                 multiSelectedAnnotData.MultiObjectIndex = new List<int>();
@@ -79,6 +85,8 @@ namespace ComPDFKit.Tool
             {
                 multiSelectedAnnotData.ZoomX = multiSelectedRect.GetZoomX();
                 multiSelectedAnnotData.ZoomY = multiSelectedRect.GetZoomY();
+                multiSelectedAnnotData.ChangeX = multiSelectedRect.GetChangeX();
+                multiSelectedAnnotData.ChangeY = multiSelectedRect.GetChangeY();
                 multiSelectedAnnotData.MoveOffset = e;
                 multiSelectedAnnotData.ObjectType = multiSelectedRect.GetSelectedType();
                 multiSelectedAnnotData.MultiObjectIndex = new List<int>();

+ 10 - 0
Demo/Examples/ComPDFKit.Tool/DrawTool/MultiSelectedRect.cs

@@ -339,6 +339,16 @@ namespace ComPDFKit.Tool.DrawTool
             return (float)(drawRect.Height / drawDefaultRect.Height);
         }
 
+        public float GetChangeX()
+        {
+            return (float)(drawRect.Width - drawDefaultRect.Width);
+        }
+
+        public float GetChangeY()
+        {
+            return (float)(drawRect.Height - drawDefaultRect.Height);
+        }
+
         public void Draw()
         {
             switch (currentDrawType)