领胜LDS 键盘AOI检测项目
wells.liu
2020-07-14 ae5cd6f77221dca1307d5a6c0851470e74412ead
src/Bro.M071.Process/UI/KeyIndicator.cs
@@ -30,20 +30,6 @@
        [Browsable(false)]
        public override bool IsEnabled { get => base.IsEnabled; set => base.IsEnabled = value; }
        //[Category("显示设置")]
        //[Description("左上/开始点位")]
        //[TypeConverter(typeof(ComplexObjectConvert))]
        //[Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
        //[Browsable(false)]
        //public CustomizedPoint StartPoint { get; set; } = new CustomizedPoint();
        //[Category("显示设置")]
        //[Description("显示区域大小")]
        //[TypeConverter(typeof(ComplexObjectConvert))]
        //[Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
        //public CustomizedPoint Size { get; set; } = new CustomizedPoint();
        [Category("显示设置")]
        [Description("标签显示区域")]
        [DisplayName("标签显示区域")]
@@ -70,9 +56,17 @@
            };
        }
        protected override void SetSelectedPen()
        {
            Pen = new Pen(Color.Red, 3);
        }
        public override void Draw(Graphics g)
        {
            g.DrawRectangle(Pen, DisplayRect);
            if (ResultState == null)
            {
                g.DrawRectangle(Pen, DisplayRect);
            }
            RectangleF rectFill = new RectangleF(DisplayRect.X + 1, DisplayRect.Y + 1, DisplayRect.Width - 2, DisplayRect.Height - 2);
            if (ResultState != null)
            {
@@ -83,11 +77,11 @@
                if (!ResultState.Value)
                {
                    backColor = Color.Red;
                    foreColor = Color.White;
                    //foreColor = Color.White;
                }
                g.DrawString(Text, Font, new SolidBrush(foreColor), (float)(DisplayRect.X + DisplayRect.Width / 2.0 - txtSize.Width / 2.0), (float)(DisplayRect.Y + DisplayRect.Height / 2.0 - txtSize.Height / 2.0));
                g.FillRectangle(new SolidBrush(Color.FromArgb(55, backColor)), rectFill);
                g.FillRectangle(new SolidBrush(Color.FromArgb(85, backColor)), rectFill);
                g.DrawString(Text, Font, new SolidBrush(foreColor), (float)(DisplayRect.X + DisplayRect.Width / 2.0 - txtSize.Width / 2.0), (float)(DisplayRect.Y + DisplayRect.Height));
            }
        }
@@ -108,7 +102,12 @@
        public override bool IsMouseInSide(Point p)
        {
            return false;
            return p.X >= DisplayRect.X && p.X <= DisplayRect.X + DisplayRect.Width && p.Y >= DisplayRect.Y && p.Y <= DisplayRect.Y + DisplayRect.Height;
        }
        public override bool IsMouseCanMoveElement(Point p)
        {
            return IsMouseInSide(p);
        }
        public override void OnKeyDown(object sender, KeyEventArgs e)
@@ -133,6 +132,53 @@
        public override void Translate(int x, int y)
        {
            DisplayRect = new Rectangle(DisplayRect.X + x, DisplayRect.Y + y, DisplayRect.Width, DisplayRect.Height);
        }
        public override void Relocate(Point point)
        {
            DisplayRect = new Rectangle(point.X - DisplayRect.Width / 2, point.Y - DisplayRect.Height / 2, DisplayRect.Width, DisplayRect.Height);
        }
        public override bool IsMouseCanStretchBottom(Point p)
        {
            return Math.Abs(p.X - (DisplayRect.X + DisplayRect.Width / 2)) < (DisplayRect.Width / 3) && Math.Abs(p.Y - DisplayRect.Y - DisplayRect.Height) < (DisplayRect.Height / 3);
        }
        public override bool IsMouseCanStretchRight(Point p)
        {
            return Math.Abs(p.X - (DisplayRect.X + DisplayRect.Width)) < (DisplayRect.Width / 3) && Math.Abs(p.Y - (DisplayRect.Y + DisplayRect.Height / 2)) < (DisplayRect.Height / 3);
        }
        public override bool IsMouseCanStretchRightLowerCorner(Point p)
        {
            return Math.Abs(p.X - (DisplayRect.X + DisplayRect.Width)) < (DisplayRect.Width / 3) && Math.Abs(p.Y - (DisplayRect.Y + DisplayRect.Height)) < (DisplayRect.Height / 3);
        }
        int x, y = 0;
        public override void StretchBottom(Point p)
        {
            if (p.Y > DisplayRect.Y)
            {
                DisplayRect = new Rectangle(DisplayRect.X, DisplayRect.Y, DisplayRect.Width, p.Y - DisplayRect.Y);
            }
        }
        public override void StretchRight(Point p)
        {
            if (p.X > DisplayRect.X)
            {
                DisplayRect = new Rectangle(DisplayRect.X, DisplayRect.Y, p.X - DisplayRect.X, DisplayRect.Height);
            }
        }
        public override void StretchRightLowerCorner(Point p)
        {
            if (p.X > DisplayRect.X && p.Y > DisplayRect.Y)
            {
                DisplayRect = new Rectangle(DisplayRect.X, DisplayRect.Y, p.X - DisplayRect.X, p.Y - DisplayRect.Y);
            }
        }
        protected override void DrawResult(Graphics g)