Prechádzať zdrojové kódy

fix minor problem while display the outline of the measure area.

gsp 3 rokov pred
rodič
commit
3fa021e57d

+ 17 - 24
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/OTSSamplespaceWindow.cs

@@ -236,7 +236,7 @@ namespace OTSMeasureApp
                     DeleteHoleBSEImageDataNoMessageBox();
                   
                     DrawMeasureField(GetWorkingVisualSample());
-                  
+                    GetSEMData();
                     GetBSEPictures();
                     break;
                 case "DeleteBSEPicture":
@@ -797,16 +797,13 @@ namespace OTSMeasureApp
 
 
         }
-        private List<CRectangleGDIObject> GetAllVisualSampleAndMeasureGDIObject()
+        private List<CRectangleGDIObject> GetOnlyVisualSampleGDIObject()
         {
             List<CRectangleGDIObject> allobj = new List<CRectangleGDIObject>();
             foreach (var s in m_visualSamples)
             {
                 allobj.Add(s.GetSampleGDIObject());
-                allobj.Add(s.GetMeasureGDIObject());
-               
-
-
+              
             }
 
 
@@ -819,7 +816,7 @@ namespace OTSMeasureApp
             List<CRectangleGDIObject> allobj = new List<CRectangleGDIObject>();
             foreach (var s in m_visualSamples)
             {
-               
+                allobj.Add(s.GetMeasureGDIObject());
                 foreach (var f in s.GetMeasureFieldGDIObjects())
                 {
                     allobj.Add(f);
@@ -980,13 +977,11 @@ namespace OTSMeasureApp
                     var m_PolygonPoint = m_DrawMeasureGDIObject.GetPolygonPointFList();
                 
                     m_PolygonPoint.Add(m_MouseDownPoint);
-
               
-
-                    //显示绘制多边形完成标识
+                
                     if (m_PolygonPoint.Count == 3)//three point can make a circle .
                     {
-                        //转为圆形这里
+                     
                         m_DrawMeasureType = (int)CreateRectangleType.Circle;
                         float r = 0;
                         PointF Centerpoint ;
@@ -994,7 +989,7 @@ namespace OTSMeasureApp
                
                         RectangleF rectangleThree = new RectangleF(new PointF(Centerpoint.X - r, Centerpoint.Y - r), new SizeF(r * 2, r * 2));
                     
-                        //在样品台内部缩放
+                      
                         if (m_visualStage.CheckMeasureAreaIsBeyondStageArea(rectangleThree))
                         {
                             m_IsDrawMeasure = true;
@@ -1006,7 +1001,7 @@ namespace OTSMeasureApp
                         }
                         Color MeasureColor = Color.Red;
                         CRectangleGDIObject CRectangleGDI =new CRectangleGDIObject (rectangleThree,  CreateRectangleType.CircleByThreePoints, (ShapeType)m_DrawMeasureType, sampleName, sampleName, MeasureColor);
-                        //在鼠标点击时添加一个默认大小与位置的图形
+                    
 
                         m_DrawMeasureGDIObject=CRectangleGDI;
                         m_DrawMeasureGDIObject.SetZoomNumber(m_visualStage.GetZoomNum());
@@ -1024,7 +1019,6 @@ namespace OTSMeasureApp
                         m_MeasureAppForm.m_RunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
                         CMeasureThreadWrapper.DoRunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
                     
-                        // 设置工作样品
                         m_MeasureAppForm.SwitchWSample(m_SampleSelectName);
                         Invalidate();
                        
@@ -1377,7 +1371,7 @@ namespace OTSMeasureApp
                         var sam1 = m_visualSamples[i];
 
                       
-                            if (sam1.GetSampleGDIObject().IfZoomContains(e.Location))
+                            if (sam1.GetSampleGDIObject().IfZoomContains(e.Location)|| sam1.GetMeasureGDIObject().IfZoomContains(e.Location))
                             {
                                 NLog.LogManager.GetCurrentClassLogger().Info(sam1.GetMeasureGDIObject().GetOrigionalDrawRegionF().ToString());
                                 var measureItem = sam1.GetMeasureGDIObject();
@@ -1871,7 +1865,7 @@ namespace OTSMeasureApp
 
            
 
-            OnPaint(e, GetAllVisualSampleAndMeasureGDIObject());
+            OnPaint(e, GetOnlyVisualSampleGDIObject());
 
             if (IsShowSampleHoleImage)
             {
@@ -2313,13 +2307,13 @@ namespace OTSMeasureApp
                                 {
                            
                                    m_DrawPolygonFinishGDIObject = new CRectangleGDIObject();
-                                var ps = new List<PointF>();
-                                foreach (var p in SMeasrueAreaList[i].DrawPolygonPointList)
-                                {
-                                    var ctrlcoordPoint = m_visualStage.OTSCoordToCtrlCoord(p);
-                                    ps.Add(ctrlcoordPoint);
+                                    var ps = new List<PointF>();
+                                    foreach (var p in SMeasrueAreaList[i].DrawPolygonPointList)
+                                    {
+                                        var ctrlcoordPoint = m_visualStage.OTSCoordToCtrlCoord(p);
+                                        ps.Add(ctrlcoordPoint);
                                 
-                                }
+                                    }
                                  
                                     CRectangleGDIObject createFinishPoint =new CRectangleGDIObject (ps, CreateRectangleType.Polygon, (ShapeType)SMeasrueAreaList[i].iShape, SMeasrueAreaList[i].sampleHoleName, SMeasrueAreaList[i].sSampleName, Color.Red);
 
@@ -2413,8 +2407,7 @@ namespace OTSMeasureApp
             var sample = m_ResultData.GetSampleByName(sam.GetSampleName());
             if (GetFieldData(sample,out listCenterPoint, out rectSize))
             { 
-                 //将所有中心点 转换为矩形
-               
+      
                 foreach (Point item in listCenterPoint)
                 {
                     //convert the center point to leftTop point of rectangle.