Przeglądaj źródła

ComPDFKit.Tool(win)-优先判断选中状态的框

liyuxuan 7 miesięcy temu
rodzic
commit
09e8bbe1e0

+ 26 - 2
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.Linq;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
@@ -783,7 +784,18 @@ namespace ComPDFKit.Tool
                 }
             }
 
-            foreach (SelectedRect rect in hitTestRects)
+            //优先判断选中状态的
+            List<SelectedRect> checkList= new List<SelectedRect>();
+            if (hitTestRects != null && hitTestRects.Count > 0)
+            {
+                List<SelectedRect> checkedList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == true).ToList();
+                List<SelectedRect> unCheckList= hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == false).ToList();
+
+                checkList.AddRange(checkedList);
+                checkList.AddRange(unCheckList);
+            }
+
+            foreach (SelectedRect rect in checkList)
             {
                 rect.SetIsHover(false);
                 rect.SetIsSelected(false);
@@ -1561,7 +1573,19 @@ namespace ComPDFKit.Tool
                     lastHoverRect.Draw();
                     lastHoverRect = null;
                 }
-                foreach (SelectedRect rect in hitTestRects)
+
+                //优先判断选中状态的
+                List<SelectedRect> checkList = new List<SelectedRect>();
+                if (hitTestRects != null && hitTestRects.Count > 0)
+                {
+                    List<SelectedRect> checkedList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == true).ToList();
+                    List<SelectedRect> unCheckList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == false).ToList();
+
+                    checkList.AddRange(checkedList);
+                    checkList.AddRange(unCheckList);
+                }
+
+                foreach (SelectedRect rect in checkList)
                 {
                     PointControlType pointControlType = rect.GetHitControlIndex(point, false);
                     MultiSelectedRect multiSelectedRect = CommonHelper.FindVisualChild<MultiSelectedRect>(PDFViewer.GetViewForTag(MultiSelectedRectViewTag));