Selaa lähdekoodia

ComPDFKitViewer 测量 - 多边形面板精度问题

zhuyi 1 vuosi sitten
vanhempi
commit
f3b10a45f1
1 muutettua tiedostoa jossa 8 lisäystä ja 9 poistoa
  1. 8 9
      Demo/Examples/Compdfkit_Tools/Measure/MeasureControl.xaml.cs

+ 8 - 9
Demo/Examples/Compdfkit_Tools/Measure/MeasureControl.xaml.cs

@@ -260,8 +260,8 @@ namespace Compdfkit_Tools.Measure
                 if(rawAnnot.Type== C_ANNOTATION_TYPE.C_ANNOTATION_POLYGON)
                 {
                     CPDFPolygonAnnotation Annot = rawAnnot as CPDFPolygonAnnotation;
-                    CPDFMeasureInfo measureInfo= Annot.GetAreaMeasure().MeasureInfo;
                     CPDFAreaMeasure polygonMeasure = Annot.GetAreaMeasure();
+                    CPDFMeasureInfo measureInfo = polygonMeasure.MeasureInfo;
                     CPDFCaptionType CaptionType = measureInfo.CaptionType;
                     bool IsArea = false;
                     bool IsLength = false;
@@ -285,14 +285,13 @@ namespace Compdfkit_Tools.Measure
                     measureEvent.RulerBaseUnit = measureInfo.RulerBaseUnit;
                     measureEvent.Precision = GetMeasureShowPrecision(measureInfo.Precision);
                     measureEvent.Type = CPDFMeasureType.CPDF_AREA_MEASURE;
-                    measureEvent.Distance = string.Format(
-                        "{0} {1}",
-                        MeasureSetting.GetPrecisionData(currentInch),
-                        MeasureSetting.RulerTranslateUnit);
-                    measureEvent.Area = string.Format(
-                        "{0} sq {1}", 
-                        MeasureSetting.GetPrecisionData(inch), 
-                        MeasureSetting.RulerTranslateUnit);
+
+
+                    NumberFormatInfo formatInfo = new NumberFormatInfo();
+                    formatInfo.NumberDecimalDigits = Math.Abs(measureInfo.Precision).ToString().Length - 1;
+
+                    measureEvent.Distance = currentInch.ToString("N", formatInfo) + " " + measureInfo.RulerTranslateUnit;
+                    measureEvent.Area = inch.ToString("N", formatInfo) + " sq " + measureInfo.RulerTranslateUnit;
 
                     MeasureSetting.InvokeMeasureChangeEvent(this, measureEvent);
                     if (annotArgs != null)