Browse Source

Merge branch 'compdfkit_demo_win_dev_measure' of http://git.kdan.cc:8865/Others/kmpdfkit_demo into compdfkit_demo_win_dev_measure

zhuyi 1 year ago
parent
commit
053c2bc5ff

+ 4 - 1
Demo/Examples/Compdfkit_Tools/Common/BarControl/CPDFMeasureBarControl.xaml.cs

@@ -1,4 +1,5 @@
 using ComPDFKit.Measure;
+using ComPDFKit.PDFAnnotation;
 using ComPDFKit.PDFAnnotation.Form;
 using Compdfkit_Tools.Helper;
 using Compdfkit_Tools.Measure;
@@ -256,6 +257,8 @@ namespace Compdfkit_Tools.PDFControl
             lineMeasureArgs.FontColor = Colors.Red;
             lineMeasureArgs.FontName = "Arial";
             lineMeasureArgs.FontSize = 14;
+            lineMeasureArgs.HeadLineType = C_LINE_TYPE.LINETYPE_ARROW;
+            lineMeasureArgs.TailLineType = C_LINE_TYPE.LINETYPE_ARROW;
             pdfViewer?.ClearSelectAnnots();
             pdfViewer?.SetMouseMode(MouseModes.AnnotCreate);
             pdfViewer?.SetToolParam(lineMeasureArgs);
@@ -279,7 +282,7 @@ namespace Compdfkit_Tools.PDFControl
             polyLineMeasureArgs.Transparency = 1;
             polyLineMeasureArgs.FontColor = Colors.Red;
             polyLineMeasureArgs.FontName = "Arial";
-            polyLineMeasureArgs.FontSize = 9;
+            polyLineMeasureArgs.FontSize = 14;
             pdfViewer?.ClearSelectAnnots();
             pdfViewer?.SetMouseMode(MouseModes.AnnotCreate);
             pdfViewer?.SetToolParam(polyLineMeasureArgs);

+ 22 - 20
Demo/Examples/Compdfkit_Tools/Measure/MeasureControl.xaml.cs

@@ -185,7 +185,9 @@ namespace Compdfkit_Tools.Measure
                         measureEvent.RulerTranslate = measureInfo.RulerTranslate;
                         measureEvent.RulerBase = measureInfo.RulerBase;
                         measureEvent.RulerBaseUnit = measureInfo.RulerBaseUnit;
-                        measureEvent.MousePos = new Point((int)endPoint.X, (int)endPoint.Y);
+                        measureEvent.MousePos = new Point(
+                           (int)Math.Abs(movevector.X),
+                           (int)Math.Abs(movevector.Y));
                         measureEvent.Type = CPDFMeasureType.CPDF_DISTANCE_MEASURE;
                         NumberFormatInfo formatInfo = new NumberFormatInfo();
                         formatInfo.NumberDecimalDigits = Math.Abs(measureInfo.Precision).ToString().Length - 1;
@@ -229,25 +231,25 @@ namespace Compdfkit_Tools.Measure
 
                         MeasureEventArgs measureEvent = new MeasureEventArgs();
                         measureEvent.Angle = 0;
-                        if (polylineAnnot.Points.Count() >= 3)
-                        {
-                            int count = polylineAnnot.Points.Count();
-                            Point endLinePoint = new Point(
-                               polylineAnnot.Points[count - 1].x,
-                               polylineAnnot.Points[count - 1].y
-                               );
-                            Point cornerLinePoint = new Point(
-                                polylineAnnot.Points[count - 2].x,
-                                polylineAnnot.Points[count - 2].y
-                                );
-                            Point startLinePoint = new Point(
-                                polylineAnnot.Points[count - 3].x,
-                                polylineAnnot.Points[count - 3].y
-                                );
-                            Vector startVector = startLinePoint - cornerLinePoint;
-                            Vector endvector = endLinePoint - cornerLinePoint;
-                            measureEvent.Angle = (int)Math.Abs(Vector.AngleBetween(endvector, startVector));
-                        }
+                        //if (polylineAnnot.Points.Count() >= 3)
+                        //{
+                        //    int count = polylineAnnot.Points.Count();
+                        //    Point endLinePoint = new Point(
+                        //       polylineAnnot.Points[count - 1].x,
+                        //       polylineAnnot.Points[count - 1].y
+                        //       );
+                        //    Point cornerLinePoint = new Point(
+                        //        polylineAnnot.Points[count - 2].x,
+                        //        polylineAnnot.Points[count - 2].y
+                        //        );
+                        //    Point startLinePoint = new Point(
+                        //        polylineAnnot.Points[count - 3].x,
+                        //        polylineAnnot.Points[count - 3].y
+                        //        );
+                        //    Vector startVector = startLinePoint - cornerLinePoint;
+                        //    Vector endvector = endLinePoint - cornerLinePoint;
+                        //    measureEvent.Angle = (int)Math.Abs(Vector.AngleBetween(endvector, startVector));
+                        //}
                         measureEvent.RulerTranslateUnit = measureInfo.RulerTranslateUnit;
                         measureEvent.RulerTranslate = measureInfo.RulerTranslate;
                         measureEvent.RulerBase = measureInfo.RulerBase;

+ 3 - 3
Demo/Examples/Compdfkit_Tools/Measure/MeasureInfoPanel.xaml.cs

@@ -139,7 +139,7 @@ namespace Compdfkit_Tools.Measure
                     {
                         DistanceText.Text=info.Distance;
                         PrecisionText.Text= ((decimal)info.Precision).ToString();
-                        AngleText.Text = info.Angle.ToString();
+                        AngleText.Text = info.Angle.ToString()+"°";
                         XText.Text=info.MousePos.X.ToString();
                         YText.Text=info.MousePos.Y.ToString();
                         ScaleText.Text = string.Format("{0}{1}={2}{3}",
@@ -153,7 +153,7 @@ namespace Compdfkit_Tools.Measure
                     {
                         DistancePolyLineText.Text = info.Distance;
                         PrecisionPolyLineText.Text = ((decimal)info.Precision).ToString();
-                        AnglePolyLineText.Text = info.Angle.ToString();
+                        AnglePolyLineText.Text = info.Angle.ToString() + "°";
                         ScalePolyLineText.Text = string.Format("{0}{1}={2}{3}",
                             info.RulerBase,
                             info.RulerBaseUnit,
@@ -165,7 +165,7 @@ namespace Compdfkit_Tools.Measure
                     {
                         RoundPolygonText.Text = info.Area;
                         PrecisionPolygonText.Text = ((decimal)info.Precision).ToString();
-                        AnglePolygonText.Text = info.Angle.ToString();
+                        AnglePolygonText.Text = info.Angle.ToString() + "°";
                         ScalePolygonText.Text = string.Format("{0}{1}={2}{3}",
                             info.RulerBase,
                             info.RulerBaseUnit, 

+ 4 - 0
Demo/Examples/Compdfkit_Tools/Measure/MeasureSettingPanel.xaml.cs

@@ -29,6 +29,10 @@ namespace Compdfkit_Tools.Measure
 
         private void ButtonCancel_Click(object sender, RoutedEventArgs e)
         {
+            if (UpdateArgsList != null && UpdateArgsList.Count > 0)
+            {
+                ReturnToInfoPanel = false;
+            }
             UpdateArgsList?.Clear();
             CancelEvent?.Invoke(this, e);
             ReturnToInfoPanel = false;