Sfoglia il codice sorgente

use thmbnail technology to draw the sampleHoleImageBuffer

gsp 8 mesi fa
parent
commit
c6299ac538

+ 4 - 455
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/CDisplayGDIObject.cs

@@ -5,7 +5,7 @@ using System.Drawing.Drawing2D;
 using System.Net;
 using System.Numerics;
 using System.Windows.Forms;
-using unvell.D2DLib;
+
 
 namespace OTSMeasureApp
 {
@@ -231,9 +231,7 @@ namespace OTSMeasureApp
             //文字
             else if (createType == CreateRectangleType.Text)
             {
-                //设置文字对齐方式
-                //if (m_RegionF.Height > 150)//won't display when it's too small
-                //{
+                //设置文字对齐方式               
                     StringFormat sf = new StringFormat();
                     sf.Alignment = StringAlignment.Center;
                     sf.LineAlignment = StringAlignment.Center;
@@ -256,7 +254,7 @@ namespace OTSMeasureApp
 
                     e.Graphics.DrawString(strContent, font, sampleBrush, m_RegionF, sf);
 
-                //}
+              
                 
             }
             //矩形
@@ -532,456 +530,7 @@ namespace OTSMeasureApp
 
             }
         }
-        public virtual void OnRender(D2DGraphics g)
-        {
-            if (createType == CreateRectangleType.SampleBackGround_Rectangle)
-            {
-                //获取颜色
-                Color myColor = OTSSamplespaceGraphicsPanelFun.GetColorValue(ColorType.RoundRectangleColor);
-
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                GraphicsPath grPath = CreateRoundedRectanglePath(m_RegionF, 20);
-                //e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
-               
-                //g.FillPath(sampleBrush, grPath);
-                //e.Graphics.DrawPath(Pens.Black, grPath);
-              var  device=g.Device;
-                var brush = device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                //D2DBrush brush=new D2DBrush(sampleBrush);
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                var pen = device.CreatePen(D2DColor.FromGDIColor(myColor));
-                g.DrawFillRectangle(ref rect, brush, pen, 1);
-            }
-            //样品台-圆形
-            else if (createType == CreateRectangleType.SampleBackGround_Circle)
-            {
-                //获取颜色
-                Color myColor = OTSSamplespaceGraphicsPanelFun.GetColorValue(ColorType.SampleBackGroundColor);
-
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;  //图片柔顺模式选择
-                //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
-                //e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点
-                //e.Graphics.FillEllipse(sampleBrush, m_RegionF);
-                //e.Graphics.DrawEllipse(Pens.Black, m_RegionF);
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                var pen = g.Device.CreatePen(D2DColor.FromGDIColor(myColor));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                D2DEllipse ell = new D2DEllipse(rect);
-                g.FillEllipse(ell, brush);
-                g.DrawEllipse(ell, D2DColor.FromGDIColor(myColor));
-            }
-            //圆形
-            else if (createType == CreateRectangleType.Circle)
-            {
-                //System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(System.Drawing.Color.White);
-                //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;  //图片柔顺模式选择
-                //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
-                //e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点
-                //e.Graphics.FillEllipse(sampleBrush, m_RegionF);
-                //e.Graphics.DrawEllipse(Pens.Black, m_RegionF);
-
-
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(Color.White));
-                var pen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                D2DEllipse ell = new D2DEllipse(rect);
-                g.FillEllipse(ell, brush);
-                g.DrawEllipse(ell, D2DColor.FromGDIColor(Color.White));
-            }
-            //文字
-            else if (createType == CreateRectangleType.Text)
-            {
-                //设置文字对齐方式
-                
-                StringFormat sf = new StringFormat();
-                sf.Alignment = StringAlignment.Center;
-                sf.LineAlignment = StringAlignment.Center;
-                //文字颜色
-                Color myColor = OTSSamplespaceGraphicsPanelFun.GetColorValue(ColorType.FontColor);
-
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                SolidBrush solidBrush = new SolidBrush(Color.FromArgb(50, Color.Black));
-                //字体大小 根据样品孔Rectangle大小
-                float fontSize = m_RegionF.Width / 2;
-                Font font = new Font("宋体", fontSize, FontStyle.Regular);
-                if (fontSize == 0)
-                {
-                    font = new Font("宋体", 5, FontStyle.Regular);
-                }
-                //消除锯齿
-                //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;  //图片柔顺模式选择
-                //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
-                //e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点
-
-                //e.Graphics.DrawString(strContent, font, sampleBrush, m_RegionF, sf);
-                D2DTextFormat tf = g.Device.CreateTextFormat("宋体", fontSize);
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                var pen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                g.DrawText(strContent, brush, tf,rect);
-                //}
-
-            }
-            //矩形
-            else if (createType == CreateRectangleType.Rectangle)
-            {
-                Color myColor = System.Drawing.Color.White;
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;  //图片柔顺模式选择
-                //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
-                //e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点
-                //e.Graphics.FillRectangle(sampleBrush, m_RegionF);
-                var m_Region = new Rectangle();
-                m_Region.X = (int)m_RegionF.X;
-                m_Region.Y = (int)m_RegionF.Y;
-                m_Region.Width = (int)m_RegionF.Width;
-                m_Region.Height = (int)m_RegionF.Height;
-                //e.Graphics.DrawRectangle(Pens.Black, m_Region);
-
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                var pen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                g.DrawRectangle(rect, pen);
-            }
-            //选择样品台
-            else if (createType == CreateRectangleType.SelectSample)
-            {
-                Color myColor = selColor;
-
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-
-                if (Shape == 0)
-                {
-
-                    //e.Graphics.FillEllipse(sampleBrush, m_RegionF);
-                    //e.Graphics.DrawEllipse(Pens.Black, m_RegionF);
-                    var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                    var pen = g.Device.CreatePen(D2DColor.FromGDIColor(myColor));
-                    var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                    D2DEllipse ell = new D2DEllipse(rect);
-                    g.FillEllipse(ell, brush);
-                    g.DrawEllipse(ell, D2DColor.FromGDIColor(myColor));
-                }
-                else
-                {
-                    //e.Graphics.FillRectangle(sampleBrush, m_RegionF);
-                    var m_Region = new Rectangle();
-                    m_Region.X = (int)m_RegionF.X;
-                    m_Region.Y = (int)m_RegionF.Y;
-                    m_Region.Width = (int)m_RegionF.Width;
-                    m_Region.Height = (int)m_RegionF.Height;
-                    //e.Graphics.DrawRectangle(Pens.Black, m_Region);
-                    var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                    var pen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                    var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                    g.FillRectangle(rect,brush);
-                    g.DrawRectangle(rect, pen);
-
-                }
-            }
-            //测试区域
-            else if (createType == CreateRectangleType.MeasureArea)
-            {
-                Color myColor = selColor;
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                Pen p = new Pen(myColor, 1);
-                //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;  //图片柔顺模式选择
-                //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
-                //e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点
-
-
-                if (Shape == 0)
-                {
-
-                    //e.Graphics.DrawEllipse(p, m_RegionF);
-
-                    var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                    var pen = g.Device.CreatePen(D2DColor.FromGDIColor(myColor));
-                    var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                    D2DEllipse ell = new D2DEllipse(rect);
-                    //g.FillEllipse(ell, brush);
-                    g.DrawEllipse(ell, D2DColor.FromGDIColor(myColor));
-                }
-                else
-                {
-                    var m_Region = new Rectangle();
-                    m_Region.X = (int)m_RegionF.X;
-                    m_Region.Y = (int)m_RegionF.Y;
-                    m_Region.Width = (int)m_RegionF.Width;
-                    m_Region.Height = (int)m_RegionF.Height;
-
-                    //e.Graphics.DrawRectangle(p, m_Region);
-                    var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                    var pen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                    var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                    //g.FillRectangle(rect, brush);
-                    g.DrawRectangle(rect, pen);
-                }
-            }
-            //绘制帧图 直线
-            else if (createType == CreateRectangleType.SingleLine)
-            {
-                //设置颜色
-                Color myColor = OTSSamplespaceGraphicsPanelFun.GetColorValue(ColorType.FieldColor);
-
-                //设置画笔
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                Pen pen = new Pen(sampleBrush, 0.0001f);
-                //未抗锯齿
-                //e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default;
-                //e.Graphics.InterpolationMode = InterpolationMode.Default;
-                //e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
-                //设置直线位置与尺寸
-                PointF startPointF = new PointF(startPoint.X, startPoint.Y);
-                PointF endPointF = new PointF(endPoint.X, endPoint.Y);
-                //度量单位
-                //e.Graphics.PageUnit = GraphicsUnit.Display;
-                //e.Graphics.DrawLine(pen, startPointF, endPointF);
-                var dcolor = D2DColor.FromGDIColor(myColor);
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                g.DrawLine(startPoint.X, startPoint.Y, endPoint.X, endPoint.Y, dcolor);
-
-            }
-            //绘制标样
-            else if (createType == CreateRectangleType.SpecimenRectangle)
-            {
-                Color myColor = System.Drawing.Color.Black;
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                Pen pen = new Pen(sampleBrush, 0.0001f);
-                //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
-                var m_Region = new Rectangle();
-                m_Region.X = (int)m_RegionF.X;
-                m_Region.Y = (int)m_RegionF.Y;
-                m_Region.Width = (int)m_RegionF.Width;
-                m_Region.Height = (int)m_RegionF.Height;
-                //e.Graphics.DrawRectangle(pen, m_Region);
-                //e.Graphics.FillRectangle(sampleBrush, m_Region);
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                g.FillRectangle(rect, brush);
-                g.DrawRectangle(rect, dpen);
-            }
-            //绘制标样
-            else if (createType == CreateRectangleType.SpecimenCircle)
-            {
-                Color myColor = System.Drawing.Color.Black;
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                Pen pen = new Pen(sampleBrush, 0.0001f);
-                //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
-                //e.Graphics.DrawEllipse(pen, m_RegionF);
-                //e.Graphics.FillEllipse(sampleBrush, m_RegionF);
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(myColor));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                D2DEllipse ell = new D2DEllipse(rect);
-                g.FillEllipse(ell, brush);
-                g.DrawEllipse(ell, D2DColor.FromGDIColor(myColor));
-            }
-            //绘制帧图
-            else if (createType == CreateRectangleType.FieldRectangle)
-            {
-                Color myColor = SelColor;
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                Pen pen = new Pen(sampleBrush, 0.01f);
-                //e.Graphics.SmoothingMode = SmoothingMode.Default;
-                //设置直线位置与尺寸
-                PointF startPointF = new PointF(m_RegionF.Left, m_RegionF.Top);
-                PointF endPointF = new PointF(m_RegionF.Right, m_RegionF.Bottom);
-                if (m_RegionF.Height > 20)//won't display when it's too small,to speed up
-                {
-                    float fontSize = m_RegionF.Width / 4;
-                    Font font;
-                    if (fontSize == 0)
-                    {
-                        font = new Font("宋体", 5, FontStyle.Regular);
-                    }
-                    else
-                    {
-                        font = new Font("宋体", fontSize, FontStyle.Regular);
-                    }
-
-                    //StringFormat sf = new StringFormat();
-                    //sf.Alignment = StringAlignment.Center;
-                    //sf.LineAlignment = StringAlignment.Center;
-                    D2DTextFormat tf = g.Device.CreateTextFormat("宋体", fontSize);
-                    var txtbrush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                    var txtpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                    var txtrect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                    g.DrawText(strContent, txtbrush, tf, txtrect);
-                    //e.Graphics.DrawString(m_sequenceNum.ToString(), font, sampleBrush, m_RegionF, sf);
-                }
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                //绘制帧图
-               g.DrawRectangle( startPointF.X, startPointF.Y, endPointF.X ,endPointF.Y, D2DColor.FromGDIColor(myColor));
-            }
-            //绘制颗粒
-            else if (createType == CreateRectangleType.ParticleLine)
-            {
-                //Color myColor = LineColor;
-                //System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                //Pen pen = new Pen(sampleBrush, 0.01f);
-                //e.Graphics.SmoothingMode = SmoothingMode.Default;
-                ////设置直线位置与长度
-                //PointF startPointF = LineStartPoint;
-                //float length = LineLength;
-                //PointF endPointF = new PointF(startPointF.X + length, startPointF.Y);
-                //e.Graphics.DrawLine(pen, startPointF, endPointF);
-            }
-            //矩形
-            else if (createType == CreateRectangleType.ParticleAreaRectangle)
-            {
-                //Color myColor = System.Drawing.Color.White;
-                //System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-
-                //var m_Region = new Rectangle();
-                //m_Region.X = (int)m_RegionF.X;
-                //m_Region.Y = (int)m_RegionF.Y;
-                //m_Region.Width = (int)m_RegionF.Width;
-                //m_Region.Height = (int)m_RegionF.Height;
-                //e.Graphics.DrawRectangle(Pens.Black, m_Region);
-            }
-            //绘制样品孔BSE图像
-            else if (createType == CreateRectangleType.DrawFrameOfHoleBSEImage)
-            {
-
-
-
-                PointF startPointF = new PointF(m_RegionF.Left, m_RegionF.Top);
-                PointF endPointF = new PointF(m_RegionF.Right + 2, m_RegionF.Bottom + 2);
-                //绘制样品孔中图像信息
-                //if (BSEImage != null)
-                //{
-                //    Image thumbnail = BSEImage.GetThumbnailImage((int)m_RegionF.Width + 2, (int)m_RegionF.Height + 2, null, IntPtr.Zero);
-                //    e.Graphics.DrawImage(thumbnail, startPointF);/*, startPointF.X, startPointF.Y, endPointF.X - startPointF.X, endPointF.Y - startPointF.Y*/
-
-                //}
-                if (BSEImage != null)
-                {
-                    var d2dimg = g.Device.CreateBitmapFromGDIBitmap((Bitmap)bseImage);
-                    //Image thumbnail = BSEImage.GetThumbnailImage((int)m_RegionF.Width + 2, (int)m_RegionF.Height + 2, null, IntPtr.Zero);
-                    //e.Graphics.DrawImage(thumbnail, startPointF);/*, startPointF.X, startPointF.Y, endPointF.X - startPointF.X, endPointF.Y - startPointF.Y*/
-                    var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                    g.DrawBitmap(d2dimg, rect);
-                }
-            }
-            else if (createType == CreateRectangleType.DrawSEMCenterPoint)
-            {
-                Color myColor = System.Drawing.Color.Red;
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-
-                //X轴线
-                PointF startPointX = semCenterPoint;
-                startPointX.X = startPointX.X - 3;
-                PointF endPointX = semCenterPoint;
-                endPointX.X = endPointX.X + 3;
-                //Y轴线
-                PointF startPointY = semCenterPoint;
-                startPointY.Y = startPointY.Y - 3;
-                PointF endPointY = semCenterPoint;
-                endPointY.Y = endPointY.Y + 3;
-                //绘制XY轴交叉线+ 
-                Pen pen = new Pen(sampleBrush, 0.0001f);
-                //e.Graphics.DrawLine(pen, startPointX, endPointX);
-                //e.Graphics.DrawLine(pen, startPointY, endPointY);
-
-                var dcolor = D2DColor.FromGDIColor(myColor);
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                g.DrawLine(startPointX.X, startPointX.Y, endPointX.X, endPointX.Y, dcolor);
-                g.DrawLine(startPointY.X, startPointY.Y, endPointY.X, endPointY.Y, dcolor);
-
-            }
-            //绘制BSE标记
-            else if (createType == CreateRectangleType.DrawBSEElementSignPoint)
-            {
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Green);
-
-                Pen pen = new Pen(sampleBrush, 2f);
-                int X = (int)m_OrigineRegionF.X;
-                int Y = (int)m_OrigineRegionF.Y;
-                //e.Graphics.DrawLine(pen, new Point(X - 8, Y), new Point(X + 8, Y));
-                //e.Graphics.DrawLine(pen, new Point(X, Y - 8), new Point(X, Y + 8));
-
-
-                var dcolor = D2DColor.FromGDIColor(Color.Green);
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(Color.Green));
-                var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                g.DrawLine(X-8,Y, X+8, Y, dcolor);
-                g.DrawLine(X, Y-8, X, Y+8, dcolor);
-            }
-            //绘制多边形测量区域
-            else if (createType == CreateRectangleType.Polygon)
-            {
-
-                Color myColor = selColor;
-                //System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
-                Pen pen = new Pen(myColor, 1);
-                if (GetPolygonPointFList().Count > 0)
-                {
-                    List<PointF> PolygonPointF = new List<PointF>();
-                    Vector2[] vec=new Vector2[GetPolygonPointFList().Count+1];
-                    for (int i= 0;i < vec.Length;i++)
-                    {
-                        vec[i]=new Vector2( m_PolygonPoints[i].X, m_PolygonPoints[i].Y);
-                    }
-                    if (PolygonDrawingEndPoint.X != 0 && PolygonDrawingEndPoint.Y != 0)
-                    {
-                        vec[m_PolygonPoints.Count] = new Vector2(PolygonDrawingEndPoint.X, PolygonDrawingEndPoint.Y);
-                    }
-
-                   g.DrawLines(vec,D2DColor.FromGDIColor(selColor));
-
-
-                }
-            }//多边形测量区域完成标识
-            else if (createType == CreateRectangleType.DrawPolygonFinish)
-            {
-                Color myColor = selColor;
-
-                Pen pen = new Pen(myColor, 1);
-                var m_Region = new Rectangle();
-                m_Region.X = (int)m_RegionF.X;
-                m_Region.Y = (int)m_RegionF.Y;
-                m_Region.Width = (int)m_RegionF.Width;
-                m_Region.Height = (int)m_RegionF.Height;
-                //e.Graphics.DrawRectangle(pen, m_Region);
-
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                //绘制帧图
-                g.DrawRectangle(rect,D2DColor.FromGDIColor(myColor));
-            }
-            //绘制多边形测量区域
-            else if (createType == CreateRectangleType.CircleByThreePoints)
-            {
-                Color myColor = selColor;
-
-                Pen p = new Pen(myColor, 1);
-
-
-                var m_Region = new Rectangle();
-                m_Region.X = (int)m_RegionF.X;
-                m_Region.Y = (int)m_RegionF.Y;
-                m_Region.Width = (int)m_RegionF.Width;
-                m_Region.Height = (int)m_RegionF.Height;
-                //e.Graphics.DrawEllipse(p, m_Region);
-                var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
-                var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(myColor));
-                var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
-                D2DEllipse ell = new D2DEllipse(rect);
-                //g.FillEllipse(ell, brush);
-                g.DrawEllipse(ell, D2DColor.FromGDIColor(myColor));
-            }
-        }
+       
         public  Image BSEImage
         {
             get { return bseImage; }

+ 1 - 15
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/OTSSamplespaceWindow.Designer.cs

@@ -49,7 +49,6 @@ namespace OTSMeasureApp
             this.DeleteSampleData = new System.Windows.Forms.ToolStripMenuItem();
             this.SlopFocusMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.pictureBox1 = new System.Windows.Forms.PictureBox();
-            this.userControl11 = new OTSMeasureApp._4_OTSSamplespaceGraphicsPanel.UserControl1();
             this.CMStrip.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
             this.SuspendLayout();
@@ -173,6 +172,7 @@ namespace OTSMeasureApp
             // 
             // pictureBox1
             // 
+            this.pictureBox1.BackColor = System.Drawing.Color.Transparent;
             this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.pictureBox1.Location = new System.Drawing.Point(0, 0);
             this.pictureBox1.Name = "pictureBox1";
@@ -184,18 +184,6 @@ namespace OTSMeasureApp
             this.pictureBox1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseMove);
             this.pictureBox1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseUp);
             // 
-            // userControl11
-            // 
-            this.userControl11.BackgroundImage = null;
-            this.userControl11.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.userControl11.Location = new System.Drawing.Point(0, 0);
-            this.userControl11.Name = "userControl11";
-            this.userControl11.ShowFPS = false;
-            this.userControl11.Size = new System.Drawing.Size(1275, 692);
-            this.userControl11.TabIndex = 6;
-            this.userControl11.Text = "userControl11";
-            this.userControl11.MouseDown += new System.Windows.Forms.MouseEventHandler(this.userControl11_MouseDown);
-            // 
             // OTSSamplespaceWindow
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@@ -204,7 +192,6 @@ namespace OTSMeasureApp
             this.ClientSize = new System.Drawing.Size(1275, 692);
             this.CloseButton = false;
             this.CloseButtonVisible = false;
-            this.Controls.Add(this.userControl11);
             this.Controls.Add(this.pictureBox1);
             this.DockAreas = ((OTS.WinFormsUI.Docking.DockAreas)(((((OTS.WinFormsUI.Docking.DockAreas.DockLeft | OTS.WinFormsUI.Docking.DockAreas.DockRight) 
             | OTS.WinFormsUI.Docking.DockAreas.DockTop) 
@@ -246,6 +233,5 @@ namespace OTSMeasureApp
         public System.Windows.Forms.ContextMenuStrip CMStrip;
         private System.Windows.Forms.ToolStripMenuItem DeleteSampleData;
         private System.Windows.Forms.PictureBox pictureBox1;
-        private UserControl1 userControl11;
     }
 }

+ 40 - 92
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/OTSSamplespaceWindow.cs

@@ -10,8 +10,7 @@ using System.Collections;
 using System.Collections.Generic;
 using System.Drawing;
 using System.Windows.Forms;
-using unvell.D2DLib;
-using unvell.D2DLib.WinForm;
+
 
 namespace OTSMeasureApp
 {
@@ -906,11 +905,7 @@ namespace OTSMeasureApp
             sampleHoleImageBuffer = new CDisplayGDIObject(new RectangleF(0, 0, this.Width, this.Height), CreateRectangleType.SampleHoleImageBuffer); ;
             sampleHoleImageBuffer.BSEImage = new Bitmap(this.Width, this.Height);
 
-            userControl11.BringToFront();
-            userControl11.RenderEvent += UserControl11_RenderEvent;
-            //pictureBox1.BringToFront();
-            //userControl11.Visible = false;
-            //pictureBox1.Visible = false;
+         
         }
 
         
@@ -1019,8 +1014,7 @@ namespace OTSMeasureApp
             {
                 allobj.Add(s.GetSampleGDIObject());
                 allobj.Add(s.GetMeasureGDIObject());
-                allobj.AddRange(m_visualStage.FrameOfHoleGDIObjects);
-                allobj.Add(sampleHoleImageBuffer);
+               
                 foreach (var f in s.GetMeasureFieldGDIObjects())
                 {
                     allobj.Add(f);
@@ -1029,6 +1023,8 @@ namespace OTSMeasureApp
 
 
             }
+            allobj.AddRange(m_visualStage.FrameOfHoleGDIObjects);
+            allobj.Add(sampleHoleImageBuffer);
 
 
             return allobj;
@@ -1619,6 +1615,11 @@ namespace OTSMeasureApp
 
     
             bool runflag = m_MeasureAppForm.MeasureThreadRunFlag;
+           
+            if (runflag)
+            {
+                return;
+            }
             this.m_MouseMovePoint = new Point(e.X, e.Y);
             if (m_IsDrawMeasure && !runflag)
             {
@@ -1948,12 +1949,11 @@ namespace OTSMeasureApp
 
                 //样品
                 MouseMoveFucntion(GetAllVisualSampleGDIObject(), e);
-                //if (GetWorkingVisualSample() != null)
-                //{
+               
                     //样品孔BSE图片
-                    MouseMoveFucntion(m_visualStage.FrameOfHoleGDIObjects, e);
+               MouseMoveFucntion(m_visualStage.FrameOfHoleGDIObjects, e);
 
-                //}
+             
 
 
 
@@ -2060,7 +2060,6 @@ namespace OTSMeasureApp
             {
                 Image thumbnail = img.BSEImage.GetThumbnailImage((int)m_RegionF.Width + 2, (int)m_RegionF.Height + 2, null, IntPtr.Zero);
                 var g = Graphics.FromImage(sampleHoleImageBuffer.BSEImage);
-                //g.DrawImage(img.BSEImage, startPointF.X, startPointF.Y, endPointF.X - startPointF.X, endPointF.Y - startPointF.Y); 
                 g.DrawImage(thumbnail, startPointF);
             }
 
@@ -2068,25 +2067,15 @@ namespace OTSMeasureApp
         protected override void OnPaint(PaintEventArgs e)//处理重绘情况
         {
 
-            //OnPaint(e, m_visualStage.GetAllGDIObject());
+            OnPaint(e, m_visualStage.GetAllGDIObject());
 
-            //OnPaint(e, GetOnlyVisualSampleGDIObject());
+            OnPaint(e, GetOnlyVisualSampleGDIObject());
 
 
 
             if (IsShowSampleHoleImage)
             {
 
-                if (m_visualStage.FrameOfHoleGDIObjects.Count > 0)
-                {
-                    //sampleHoleImageBuffer = new Bitmap(this.Width, this.Height);
-                    //foreach (var frameGDI in m_visualStage.FrameOfHoleGDIObjects)
-                    //{
-                    //    DrawSampleHoleImage(frameGDI);
-                    //}
-                    //OnPaint(e, m_visualStage.FrameOfHoleGDIObjects);
-                }
-
                 e.Graphics.DrawImage(sampleHoleImageBuffer.BSEImage, sampleHoleImageBuffer.GetZoomedRegionF());
 
             }
@@ -2106,59 +2095,15 @@ namespace OTSMeasureApp
                 }
             }
         }
-        private void UserControl11_RenderEvent(unvell.D2DLib.D2DGraphics g)
-        {
-            //var rect = new D2DRect(0, 0, 100, 200);
-            //g.DrawRectangle(rect, D2DColor.Red);
-            //g.DrawText("Hello World", D2DColor.Yellow, this.Font, 200, 200);
-
-            //OnPaint(e, m_visualStage.GetAllGDIObject());
-            OnRender(g, m_visualStage.GetAllGDIObject());
-
-
-            OnRender(g, GetOnlyVisualSampleGDIObject());
-
-            OnRender(g, GetAllVisualFieldGdiObject());
-            if (IsShowSampleHoleImage)
-            {
-
-                if (m_visualStage.FrameOfHoleGDIObjects.Count > 0)
-                {
-                    //sampleHoleImageBuffer = new Bitmap(this.Width, this.Height);
-                    //foreach (var frameGDI in m_visualStage.FrameOfHoleGDIObjects)
-                    //{
-                    //    DrawSampleHoleImage(frameGDI);
-                    //}
-                    OnRender(g, m_visualStage.FrameOfHoleGDIObjects);
-                }
-
-                //e.Graphics.DrawImage(sampleHoleImageBuffer.BSEImage, sampleHoleImageBuffer.GetZoomedRegionF());
-
-            }
-
-            if (m_DrawMeasureGDIObject != null)
-            {
-
-                m_DrawMeasureGDIObject.OnRender(g);
-            }
-
-
-
-            if (m_DrawPolygonFinishGDIObject != null) m_DrawPolygonFinishGDIObject.OnRender(g);
-
-        }
-        public void OnRender(D2DGraphics g, List<CDisplayGDIObject> m_ObjectGDIObjects)//处理重绘情况
+       
+       
+        protected override void OnMouseWheel(MouseEventArgs e)
         {
-            foreach (CDisplayGDIObject item in m_ObjectGDIObjects.ToArray())
+            bool runflag = m_MeasureAppForm.MeasureThreadRunFlag;
+            if (runflag)
             {
-                if (item != null)
-                {
-                    item.OnRender(g);
-                }
+                return;
             }
-        }
-        protected override void OnMouseWheel(MouseEventArgs e)
-        {
             var currentZoomNum = m_visualStage.GetZoomNum();
             //如果正在进行测量线程,则退出鼠标点击操作
           
@@ -2242,7 +2187,7 @@ namespace OTSMeasureApp
             base.OnMouseWheel(e);
             //重新绘制
             Invalidate();
-            userControl11.Invalidate();
+          
         }
 
         private void MouseWheelFunction(List<CDisplayGDIObject> objList, Point mousePoint, float ZoomNum)
@@ -3114,7 +3059,7 @@ namespace OTSMeasureApp
         #region 添加样品孔中BSE图像信息
         public void AddHoleBSEImageData(byte[] ImageData, int width, int height, Point fieldPos, int fieldId)
         {
-
+           
             CDisplayGDIObject itemWorkSample;
          
 
@@ -3139,7 +3084,11 @@ namespace OTSMeasureApp
 
                             bseImage = CImageHandler.ToGrayBitmap(ImageData, m_iWidth, m_iHeigh);
                             m_visualStage.FrameOfHoleGDIObjects[i].BSEImage = bseImage;
-                            DrawSampleHoleImage(m_visualStage.FrameOfHoleGDIObjects[i]);
+                            if (m_MeasureAppForm.MeasureThreadRunFlag)//only when it's in running mode,we update the samplehole image.prvent conflict using of sampleHoleImageBuffer.BSEImage
+                            {
+                                DrawSampleHoleImage(m_visualStage.FrameOfHoleGDIObjects[i]);
+                            }
+                          
                         
                             break;
                         }
@@ -3160,6 +3109,11 @@ namespace OTSMeasureApp
 
 
             m_visualStage.FrameOfHoleGDIObjects.Clear();
+            //sampleHoleImageBuffer = new CDisplayGDIObject(new RectangleF(0, 0, this.Width, this.Height), CreateRectangleType.SampleHoleImageBuffer); ;
+            var w = sampleHoleImageBuffer.BSEImage.Width;
+            var h = sampleHoleImageBuffer.BSEImage.Height;
+            sampleHoleImageBuffer.BSEImage=new Bitmap(w,h);
+           
             Invalidate();
 
         }
@@ -3219,21 +3173,19 @@ namespace OTSMeasureApp
 
         private void pictureBox1_Paint(object sender, PaintEventArgs e)
         {
-            //OnPaint(e, m_visualStage.GetAllGDIObject());
-
-            //OnPaint(e, GetOnlyVisualSampleGDIObject());
+           
 
-            //OnPaint(e, GetAllVisualFieldGdiObject());
+            OnPaint(e, GetAllVisualFieldGdiObject());
 
-            //if (m_DrawMeasureGDIObject != null)
-            //{
+            if (m_DrawMeasureGDIObject != null)
+            {
 
-            //    m_DrawMeasureGDIObject.OnPaint(e);
-            //}
+                m_DrawMeasureGDIObject.OnPaint(e);
+            }
 
 
 
-            //if (m_DrawPolygonFinishGDIObject != null) m_DrawPolygonFinishGDIObject.OnPaint(e);
+            if (m_DrawPolygonFinishGDIObject != null) m_DrawPolygonFinishGDIObject.OnPaint(e);
         }
 
         private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
@@ -3246,9 +3198,5 @@ namespace OTSMeasureApp
             this.OnMouseMove(e);
         }
 
-        private void userControl11_MouseDown(object sender, MouseEventArgs e)
-        {
-            this.pictureBox1_MouseDown(sender, e);
-        }
     }
 }

+ 0 - 17
OTSIncAMeasureApp/OTSIncAMeasureApp.csproj

@@ -214,14 +214,6 @@
     <Prefer32Bit>true</Prefer32Bit>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="d2dlibexport, Version=1.5.0.0, Culture=neutral, PublicKeyToken=7afcd1746c161a40, processorArchitecture=AMD64">
-      <HintPath>..\packages\unvell.D2DLib-x64.1.5.0\lib\net462\d2dlibexport.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
-    <Reference Include="d2dwinform, Version=1.5.0.0, Culture=neutral, PublicKeyToken=7afcd1746c161a40, processorArchitecture=AMD64">
-      <HintPath>..\packages\unvell.D2DLib-x64.1.5.0\lib\net462\d2dwinform.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="FEIApiControl">
       <HintPath>..\OpenDll\FEIAPI\FEIApiControl.dll</HintPath>
     </Reference>
@@ -400,12 +392,6 @@
     <Compile Include="4-OTSSamplespaceGraphicsPanel\RingGdiDataInput.Designer.cs">
       <DependentUpon>RingGdiDataInput.cs</DependentUpon>
     </Compile>
-    <Compile Include="4-OTSSamplespaceGraphicsPanel\UserControl1.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="4-OTSSamplespaceGraphicsPanel\UserControl1.Designer.cs">
-      <DependentUpon>UserControl1.cs</DependentUpon>
-    </Compile>
     <Compile Include="4-OTSSamplespaceGraphicsPanel\VisualStage.cs" />
     <Compile Include="5-OTSMeasureStatuImageFun\frmSpecialGrayParticle.cs">
       <SubType>Form</SubType>
@@ -653,9 +639,6 @@
     <EmbeddedResource Include="4-OTSSamplespaceGraphicsPanel\RingGdiDataInput.resx">
       <DependentUpon>RingGdiDataInput.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="4-OTSSamplespaceGraphicsPanel\UserControl1.resx">
-      <DependentUpon>UserControl1.cs</DependentUpon>
-    </EmbeddedResource>
     <EmbeddedResource Include="5-OTSMeasureStatuImageFun\Control_Ruler.resx">
       <DependentUpon>Control_Ruler.cs</DependentUpon>
     </EmbeddedResource>

+ 1 - 3
OTSIncAMeasureApp/OTSIncAMeasureAppForm.cs

@@ -866,9 +866,7 @@ namespace OTSMeasureApp
             {
                 m_SamplepaceWindow.InitSampleMeasure(spl, 0);
             }
-            //m_ProjParam.InitWorkingSampleData(0);
-            //this.InitCurrentSampleState();
-            // m_MeasureResultWindow.SetInit();
+           
             m_SamplepaceWindow.PrepareMeasureField(m_SamplepaceWindow.GetWorkingVisualSample(), MSR_RUN_TYPE.RUNMEASURE);
         }
 

+ 0 - 1
OTSIncAMeasureApp/packages.config

@@ -15,5 +15,4 @@
   <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
   <package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
   <package id="System.ValueTuple" version="4.5.0" targetFramework="net48" />
-  <package id="unvell.D2DLib-x64" version="1.5.0" targetFramework="net48" />
 </packages>